通过C#调用COM组件的包装类是否需要实现Dispose模式?

Sci*_*-fi 5 c# com dispose rcw

我有一个用c#编写的类,它充当COM组件的包装器.COM组件是早期绑定的,RCW由Visual Studio生成.我应该在我的包装器类中实现一个dispose模式来清理COM引用,还是应该让GC处理它,因为它已经有一个RCW?

Ant*_*nes 4

很少需要实现 Dispose,但通常有充分的理由这样做。

如果 COM 对象代表需要快速释放的重要资源,那么这可能是实现 Dispose 的一个很好的理由。

在您的处置方法中,您可以执行以下操作:-

 System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW);
Run Code Online (Sandbox Code Playgroud)

因此,处置您的类将立即释放 COM 对象。