2

我正在使用以下代码:

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;

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

我是否必须以编程方式关闭应用程序对象(就 COM 对象等而言)???或者这是垃圾收集器?

4

2 回答 2

3

如果您想在使用 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 方法的例子

于 2012-11-15T19:20:15.387 回答
0

你没事。当您调用 new MSWord.Application();一个新的 Ms-Word 进程时,它会启动并管理 Document。

你不必担心。如果您将文档显示给用户,当他关闭文档时,一切都会完成。

于 2012-11-15T19:12:49.043 回答