.NET 和 COM 互操作性 : release COM from . NET 客户端

标签 .net com com-interop

假设我有一个 COM 对象(非托管)和 .NET 客户端。

是否需要从.NET客户端调用Marshal.FinalReleaseComObject方法来释放COM对象?

最佳答案

不需要。不需要从 .Net 客户端显式释放 COM 对象。 COM 对象将像任何其他 .Net 对象一样被收集,并且一旦对它的所有引用都被删除,它将释放它的底层 native 句柄。

显式使用 FinalReleaseComObject实际上会导致编程错误。如果您的代码中的另一个组件仍在引用 COM 对象,您将从它下面拉出 native 对象。这可能会导致运行时失败。

关于.NET 和 COM 互操作性 : release COM from . NET 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709141/

相关文章:

c# - 创 build 置 (MSI) 以注册(regasm)程序集

c# - 在 Java 中实现自定义 COM 接口(interface)

c# - 如何将 System.Object[*] 转换为 System.Object[] II

.net - 如何从子线程或另一个线程到达父线程?

c++ - 哪个是 IErrorInfo 版本的正确处理

c# - WCF 服务 - 哪些部分可以从源代码管理中排除?

c# - 由非托管应用托管的托管组件中的 Await 和 SynchronizationContext

c# - .Net WebBrowser 中的 HTML 与 WinForms 应用程序之间的双向通信

c# - 如何在包中包含引用的程序集?

.net - azure 应用程序服务从 web.debug.config 读取自定义环境变量而不是配置菜单变量