wake-up-neo.com

Wie kann man die Warnung vor Mehrdeutigkeiten beseitigen?

Ich habe diese Warnung:

Warnung 3 Mehrdeutigkeit zwischen der Methode 'Microsoft.Office.Interop.Word._Application.Quit (Objekt ref, Objekt ref, Objekt ref') 'und der Nichtmethode' Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit '. Methodengruppe verwenden.

auf meiner Leitung

wordApplication.Quit();

Ich habe versucht, es zu ersetzen durch:

wordApplication.Quit(false); // don't save changes

und

wordApplication.Quit(false, null, null); // no save, no format

aber es gibt mir immer diese Warnung. Es ist kein großes Problem, da der Code perfekt kompiliert wird und wie erwartet funktioniert, aber ich möchte die Warnungen loswerden. Was kann ich machen?

54
user1002358

Konvertieren Sie explizit den Verweis auf den Typ _Application:

((_Application)wordApplication).Quit(); 
72
phoog

Ich habe das benutzt

   object oMissing = System.Reflection.Missing.Value;
   ((Microsoft.Office.Interop.Word._Application)wordApp).Quit(ref oMissing, ref oMissing, ref oMissing);
               wordApp = null;
               GC.Collect();
               GC.WaitForPendingFinalizers();
0
user3397383

Es heißt, es gibt zwei Quit-Methoden im enthaltenen Namespace, die Sie verwenden können, wenn Sie Quit in Microsoft.Office.Interop.Word._Application.Quit ändern möchten, um die Nachricht zu entfernen, oder (haben Sie dies nicht persönlich versucht) eine using-Anweisung verwenden.

0
smitec

Ich glaube, Sie müssen die Art der Parameter für Quit definieren. Ich benutze das Folgende, was zu funktionieren scheint.

using Microsoft.Office.Interop.Word;
...
Application wordApplication = new Application();
...
    object paramMissing = Type.Missing;
    object saveOptionsObject = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
        wordApplication.Quit(ref saveOptionsObject, ref paramMissing, ref paramMissing);
        wordApplication = null;
0
Kim Crosser