2012-06-16 41 views
1

如何讓我的類庫STA在VBScript中用於CreateObject?我想確保當我執行以下操作時(請參閱下面的內容),流程應該終止/處置。C#4.0 COM類庫

Set MyObject = Nothing ' Dispose 

這可能嗎?我已經看到,當我運行上述語句時,我的對象不會丟棄,並且我的析構函數沒有運行。請指教。

下面是我班的快照(其中被標記爲COM可見,並註冊爲COM Interop):

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

我需要與另一個屬性標記,或創建另一個設定爲它被佈置當我把它設置爲沒有COM?

回答

2

這與標記您的類庫STA無關。 .NET不支持確定性破壞,因此當您將引用設置爲Nothing時,無法調用任何東西。

.NET最接近的構造是IDisposbale接口,必須手動調用它。如下所示:

MyObject.Dispose 
Set MyObject= Nothing 

注意C#對象沒有析構函數 - 它們有終結器。終止程序在對象被垃圾收集時運行,比對象不再被引用晚一段時間。