歧义在Word中互操作的代码 [英] Ambiguity in Word Interop code

查看:159
本文介绍了歧义在Word中互操作的代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近发布了一个问题关于这里阅读Word文件。



该应用程序运行正常,但是我得到这样的警告消息;




方法$ b之间警告歧义$ b'Microsoft.Office.Interop.Word._Document.Close(Ref对象,引用对象,参考对象)'
和非法Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close。使用
法组。




似乎有一些使用空间有些含糊不清,我想知道如何解决这个。虽然该应用程序运行,我想尽量减少警告/错误



我提供了以下的类的代码;该生产线是指在这两行

  docs.Close(REF nullobject,裁判nullobject,裁判nullobject); 
wordObject.Quit(REF nullobject,裁判nullobject,裁判nullobject);



整个代码:

 命名空间Wizard.Classes 
{
类MSWordReader
{
公共无效读取(字符串文件名)
{
字符串缓冲区= ;

{
Microsoft.Office.Interop.Word.Application wordObject =新的
Microsoft.Office.Interop.Word.Application();
目标文件=文件名; //这是路径
对象nullobject = Type.Missing;
对象可见=虚假的;
对象readonlyp = TRUE;
对象addtorecent = FALSE; //添加到单词最近文件列表

Microsoft.Office.Interop.Word.Document文档= wordObject.Documents.Open
(REF文件,文献nullobject,裁判readonlyp,裁判addtorecent,
REF nullobject,裁判nullobject,裁判nullobject,裁判nullobject,
裁判nullobject,裁判nullobject,裁判nullobject,裁判可见,
裁判nullobject,裁判nullobject,裁判nullobject,裁判nullobject
) ;
docs.ActiveWindow.Selection.WholeStory();
docs.ActiveWindow.Selection.Copy();
IDataObject的数据= Clipboard.GetDataObject();
缓冲= data.GetData(DataFormats.Text)的ToString();

docs.Close(REF nullobject,裁判nullobject,裁判nullobject);

wordObject.Quit(REF nullobject,裁判nullobject,裁判nullobject);
MessageBox.Show(缓冲液);

}
赶上(异常前)
{
MessageBox.Show(ex.Message);
}
}
}
}


解决方案

要解决的模糊性,使用:

 ((的Microsoft.Office.Interop.Word。 _document)文档).Close(REF nullobject,裁判nullobject,裁判nullobject); 
((Microsoft.Office.Interop.Word._Application)wordObject).Quit(REF nullobject,裁判nullobject,裁判nullobject);


I recently posted a question about reading Word files here.

The app runs fine however I get this Warning message;

Warning Ambiguity between method 'Microsoft.Office.Interop.Word._Document.Close(ref object, ref object, ref object)' and non-method 'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'. Using method group.

There seems to be some ambiguity from some using namespace and I would like to know how to resolve this. Although the app runs, I would like to minimize warning/errors.

I have provided the code below for the class; The line it refers to are these two lines

docs.Close(ref nullobject, ref nullobject, ref nullobject);
wordObject.Quit(ref nullobject, ref nullobject, ref nullobject);

The whole code:

namespace Wizard.Classes
{
    class MSWordReader
    {
        public void read(String filename)
        {
            String buffer = "";
            try
            {
                Microsoft.Office.Interop.Word.Application wordObject = new   
                Microsoft.Office.Interop.Word.Application();
                object file = filename; //this is the path
                object nullobject = Type.Missing;
                object visible = false;
                object readonlyp = true;
                object addtorecent = false; //add to words recent filelist

                Microsoft.Office.Interop.Word.Document docs = wordObject.Documents.Open
                    (ref file,ref nullobject, ref readonlyp, ref addtorecent,
                    ref nullobject, ref nullobject, ref nullobject, ref nullobject,
                    ref nullobject, ref nullobject, ref nullobject, ref visible,
                    ref nullobject, ref nullobject, ref nullobject, ref nullobject
                                    );
                docs.ActiveWindow.Selection.WholeStory();
                docs.ActiveWindow.Selection.Copy();
                IDataObject data = Clipboard.GetDataObject();
                buffer = data.GetData(DataFormats.Text).ToString();

                docs.Close(ref nullobject, ref nullobject, ref nullobject);

                wordObject.Quit(ref nullobject, ref nullobject, ref nullobject);
                MessageBox.Show(buffer);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

解决方案

To resolve the ambiguity, use:

((Microsoft.Office.Interop.Word._Document)docs).Close(ref nullobject, ref nullobject, ref nullobject);    
((Microsoft.Office.Interop.Word._Application)wordObject).Quit(ref nullobject, ref nullobject, ref nullobject);

这篇关于歧义在Word中互操作的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆