1

如何使我的类库 STA 与 VBScript 中的 CreateObject 一起使用?我想确保当我执行以下操作时(请参见下文),该过程应该终止/处置。

Set MyObject = Nothing ' Dispose

这可能吗?我已经看到,当我运行上述语句时,我的对象没有被释放,我的析构函数也没有被运行。请指教。

下面是我的班级的快照(标记为 COM 可见并注册为 COM 互操作):

[Guid("")]
[ClassInterface()]
[ProgID()]
[ComVisible(true)]
public class MyClass {}

当我从 COM 将其设置为空时,是否需要用另一个属性标记它或创建另一个设置以将其处理?

4

1 回答 1

2

这与标记您的类库 STA 无关。.NET 不支持确定性破坏,因此当您将引用设置为 Nothing 时,它无法调用任何内容。

.NET 最接近的结构是IDisposbale必须手动调用的接口。如下所示:

MyObject.Dispose
Set MyObject= Nothing

注意 C# 对象没有析构函数——它们有终结器。终结器在对象被垃圾回收时运行,这比对象不再被引用时晚了一段时间。

于 2012-06-16T17:30:50.180 回答