我正在使用以下代码:

using MSWord = Microsoft.Office.Interop.Word;

.
.
.

MSWord.Application wordApp = new MSWord.Application();

MSWord.Document wordDoc = new MSWord.Document();

wordDoc = wordApp.Documents.Add(Template: oTemplatePath);

//do something with the Document... replace fields and so on...

wordApp.Visible = true;


例如,该函数然后退出,我的应用程序正在关闭。
现在,用户可以编辑打开的文档,然后保存或关闭它。

我是否必须以编程方式关闭Application-Object(就COM-Object而言)???还是这是垃圾收集器?

最佳答案

如果要在使用Microsoft.Interop时正确关闭/处置COM对象
你想使用这种方法

System.Runtime.InteropServices.Marshal.ReleaseComObject( "Replace with your ComObject Here");


因此,例如,如果我创建了一个名为wordApp的对象,则可以这样声明它并按以下方式进行处理

MSWord.Application wordApp = new MSWord.Application();
System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);


这可以为您提供有关如何使用ReleaseComObject的示例
Marshal.ReleaseComObject Method

09-10 03:31