Mehrdeutigkeit im Word-Interop-Code [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Kompilierzeitwarnung bei Verwendung von 'Microsoft.Office.Interop.Word._Document.Close' 1 AntwortIch habe kürzlich eine Frage zum Lesen von Word-Dateien gepostetHie.
Die App läuft einwandfrei, aber ich erhalte diese Warnmeldung;
Warning Ambiguity zwischen der Methode 'Microsoft.Office.Interop.Word._Document.Close (Referenzobjekt, Referenzobjekt, Referenzobjekt)' und der Nicht-Methode 'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'. Verwenden der Methodengruppe.
Es scheint eine gewisse Mehrdeutigkeit bei der Verwendung von Namespaces zu geben, und ich würde gerne wissen, wie dies gelöst werden kann. Obwohl die App ausgeführt wird, möchte ich Warnungen / Fehler minimieren.
Ich habe den folgenden Code für die Klasse angegeben. Die Zeile, auf die es verweist, sind diese beiden Zeilen
docs.Close(ref nullobject, ref nullobject, ref nullobject);
wordObject.Quit(ref nullobject, ref nullobject, ref nullobject);
Der ganze 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);
}
}
}
}