当客户端发布时,可以立即发现用C#编写的com服务器对象吗?

时间:2011-02-25 02:41:30

标签: c# com interop

对象可以知道客户端何时创建它,因为构造函数会运行。

但是由于C#没有确定性的析构函数,因此在GC最终清理对象之前不会调用Dispose或Finalize。

服务器对象是否可以及时发现其客户端已发布它?我不需要此时释放的对象,只需要一个名为。

的方法

谢谢,     ++ PLS

2 个答案:

答案 0 :(得分:2)

不,CCW(COM Callable Wrapper)介于两者之间。它只是在引用计数达到零时删除对托管对象的引用,以便最终可以收集对象。您无法连接到CCW,它是不透明的,不会产生任何事件。

答案 1 :(得分:0)

Dispose的目的是使对象销毁确定性,而不是等待GC调用终结器。无论如何,你可以调用Marshal.ReleaseComObject来减少COM对象的引用计数。