相关疑难解决方法(0)

如何正确清理Excel互操作对象?

我在C#(ApplicationClass)中使用Excel互操作,并在我的finally子句中放置了以下代码:

while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { }
excelSheet = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Run Code Online (Sandbox Code Playgroud)

虽然这种工作,Excel.exe即使我关闭Excel后,该过程仍然在后台.只有在我的应用程序手动关闭后才会发布.

我做错了什么,或者是否有其他方法可以确保互操作对象得到妥善处理?

c# excel interop com-interop

733
推荐指数
20
解决办法
30万
查看次数

如何使用后期绑定访问Microsoft Word现有实例

我正在c#中开发一些代码,我将与Microsoft Word进行交互.我希望能够选择重新使用现有实例,或者作为创建新实例的替代方法.

请记住,我想使用LATE BINDING完成所有这些...可以肯定地说我已经弄清楚如何在创建新实例时让事情正常工作..我只需要调用Activator.CreateInstance等.

我遇到的问题是如何重用现有实例,例如,Word已经打开,我想使用该实例.

有没有Activator.UseExistingInstance?或者类似的东西?

谢谢!

c# automation ms-word activator late-binding

5
推荐指数
2
解决办法
1万
查看次数