web-dev-qa-db-ja.com

あいまいさに関する警告を排除するにはどうすればよいですか?

私はこの警告があります:

警告3メソッド 'Microsoft.Office.Interop.Word._Application.Quit(ref object、ref object、ref object)'と非メソッド '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

しかし、それは私にこの警告を与え続けます。コードは完全にコンパイルされ、期待どおりに機能するので、大きな問題ではありませんが、警告は表示しません。私に何ができる?

54
user1002358

参照を型_Applicationに明示的にキャストします。

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

これを使った

   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

含まれている名前空間にquitメソッドが2つあるといいます。quitをMicrosoft.Office.Interop.Word._Application.Quitに変更してメッセージを削除するか、(個人的にこれを試したことがない)usingステートメントを使用します。

0
smitec

終了するパラメータのタイプを定義する必要があると思います。私は次のようにしていますが、うまくいくようです。

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