IEn*_*ble 9 c# vsto ms-word compiler-warnings
该应用程序运行良好,但我收到此警告消息;
警告方法'Microsoft.Office.Interop.Word._Document.Close(ref object,ref object,ref object)'和非方法'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'之间的歧义.使用方法组.
一些人使用命名空间似乎有些含糊不清,我想知道如何解决这个问题.虽然应用程序运行,但我希望尽量减少警告/错误.
我在课堂上提供了以下代码; 它所指的线是这两条线
docs.Close(ref nullobject, ref nullobject, ref nullobject);
wordObject.Quit(ref nullobject, ref nullobject, ref nullobject);
Run Code Online (Sandbox Code Playgroud)
整个代码:
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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Avi*_*man 21
要解决歧义,请使用:
((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);
Run Code Online (Sandbox Code Playgroud)
尝试铸造你的docs第一个:
((_Document)docs).Close(ref nullobject, ref nullobject, ref nullobject);
Run Code Online (Sandbox Code Playgroud)
该Microsoft.Office.Interop.Word.Document接口同时实现DocumentEvents2_Event和_document接口.每个都有一个close方法,编译器无法确定你的意思.
或者,您可以首先将docs变量声明为_Document:
Microsoft.Office.Interop.Word._Document docs = wordObject.Documents.Open ...
Run Code Online (Sandbox Code Playgroud)
相同的分辨率可以用于你的歧义wordObject,把它投射到_Application.
| 归档时间: |
|
| 查看次数: |
10709 次 |
| 最近记录: |