Как устранить предупреждение о неоднозначности? - PullRequest
54 голосов
/ 29 ноября 2011

У меня есть это предупреждение:

Предупреждение 3 Неоднозначность между методом «Microsoft.Office.Interop.Word._Application.Quit (объект ref, объект ref, объект ref)» и не метод »Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit.Используя группу методов.

в моей строке

wordApplication.Quit();

Я попытался заменить его на:

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

и

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

но это продолжает давать мне это предупреждение.Это не большая проблема, потому что код отлично компилируется и функционирует, как и ожидалось, но я бы хотел избавиться от предупреждений.Что я могу сделать?

Ответы [ 4 ]

72 голосов
/ 29 ноября 2011

Явно приведите ссылку на тип _Application:

((_Application)wordApplication).Quit(); 
0 голосов
/ 13 марта 2018

Я считаю, что вам нужно определить тип параметров для выхода.Я использую следующее, которое, кажется, работает.

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 голосов
/ 17 июля 2015

Я использовал это

   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 голосов
/ 29 ноября 2011

Это говорит о том, что во включенном пространстве имен есть два метода выхода, которые вы можете изменить, если захотите изменить выход на Microsoft.Office.Interop.Word._Application.Quit, чтобы удалить сообщение, или (лично не пробовали) использовать оператор using.

...