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

5

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

1个回答

4

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

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

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

 System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW);

因此,销毁您的类将立即释放COM对象。

这让我想知道为什么RCW没有实现Dispose模式,这似乎是正确的做法。 - vmb100

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接