최근까지 .NET 런타임은 runtime-callable wrapper을 만들 때 COM 개체의 참조 횟수를 1만큼만 늘리고 특정 COM 개체에 대해서는 런타임 호출 가능 래퍼 하나만 만들 것이라고 믿었습니다..NET 런타임은 COM 개체에 대한 참조 횟수를 1보다 많이 유지합니까?
제가 실수가 아니라면, 위의 내용은 실제로 Marshal.FinalReleaseComObject과 Marshal.ReleaseComObject이 동일한 것을 의미합니다.
그러나 오늘은 코드에서 COM 개체가 제대로 릴리스되었는지 확인하기 위해 몇 가지 테스트를 작성했습니다. 나는 이것을 공개 할 객체를 호출하고 예상 된 InvalidComObjectException
을 검사합니다. FinalReleaseComObject
다음에 예외가 발생하지만 ReleaseComObject
다음에 예외가 발생하는 경우가 있습니다.
즉, .NET 2.0 런타임에서 COM 개체에 대한 참조를 둘 이상 보유 할 수 있습니까? 그렇다면 언제 이것을합니까?