У меня есть управляемый класс, который использует COM, который выглядит следующим образом.
Public Class MyClass
Private myobj as SomeComObject
Public Sub New()
myobj = CreateObject("SomeComObject.Class")
End Sub
Public Sub DoSomething()
dim innerobj as SomComObject.InnerClass
innerobj = myobj.CreateInnerClass("arg1", true, 5)
innerobj.DoSomething()
End Sub
End Class
Поскольку я использую неуправляемую dll через dll COM-Interob, мне интересно, нужно ли мне освобождать innerobj вручную илиесли gc достаточно умен, чтобы делать это автоматически, если я вызываю ReleaseObject ()
Мой класс реализует IDisposable, и я делаю следующее:
Runtime.InteropServices.Marshal.ReleaseComObject(myobj)
Нужно ли мне позаботиться об освобождениивсе внутренние объекты, созданные объектом COM или нет?И если я должен это сделать, имеет ли значение порядок (сначала внутренний, затем родительский, а потом родительский, затем внутренний)?