2012-06-16 2 views
1

클래스 라이브러리 STA를 VBScript의 CreateObject와 함께 사용하려면 어떻게해야합니까? 나는 다음을 할 때 (아래 참조) 프로세스가 종료/처리되어야하는지 확인하고 싶다.C# 4.0 COM 클래스 라이브러리

Set MyObject = Nothing ' Dispose 

이것은 가능합니까? 위의 명령문을 실행할 때 내 객체가 삭제되지 않고 내 소멸자가 실행되지 않는 것을 보았습니다. 제발 조언.

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

이 배치 될 때까지 나는 또 다른 속성을 표시하거나 다른 설정을 작성해야합니까 : 아래

은 (가시 COM을 표시하고 COM 상호 운용성을 위해 등록) 내 수업의 스냅 샷입니다 COM에서 아무것도 설정하지 않은 경우?

답변

2

이것은 클래스 라이브러리 STA를 표시하는 것과 관련이 없습니다. .NET은 결정 론적 파괴를 지원하지 않으므로 참조를 Nothing으로 설정할 때 아무 것도 호출하지 못합니다.

.NET에 가장 가까운 구조는 IDisposbale 인터페이스이며 수동으로 호출해야합니다. 아래처럼 :

MyObject.Dispose 
Set MyObject= Nothing 

참고 C# 개체에는 종결 자 (finalizer)가 없습니다. 오브젝트가 더 이상 참조되지 않을 때보 다 시간이 지난 가비지 콜렉션이 완료 될 때 파이널 라이저가 실행됩니다.