Ambitność w kodzie Word Interop [duplikat]
To pytanie ma już odpowiedź tutaj:
Ostrzeżenie o czasie kompilacji podczas korzystania z „Microsoft.Office.Interop.Word._Document.Close” 1 odpowiedźOstatnio opublikowałem pytanie dotyczące czytania plików Wordtuta.
Aplikacja działa dobrze, jednak pojawia się ten komunikat ostrzegawczy;
Ostrzeżenie Niejednoznaczność między metodą „Microsoft.Office.Interop.Word._Document.Close (obiekt referencyjny, obiekt referencyjny, obiekt referencyjny)” i inną niż „Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close”. Korzystanie z grupy metod.
Wydaje się, że niektórzy używają przestrzeni nazw są niejasności i chciałbym wiedzieć, jak to rozwiązać. Chociaż aplikacja działa, chciałbym zminimalizować ostrzeżenia / błędy.
Dodałem poniższy kod dla klasy; Linia, do której się odnosi to te dwie linie
docs.Close(ref nullobject, ref nullobject, ref nullobject);
wordObject.Quit(ref nullobject, ref nullobject, ref nullobject);
Cały kod:
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);
}
}
}
}