J'ai une classe managée qui utilise un COM qui ressemble à ceci.Ai-je besoin de libérer des objets internes d'un objet COM Interop?
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
Depuis que je suis en utilisant un dll non géré par une dll COM-Interob Je me demande si je dois libérer le innerobj manuellement ou si le gc est assez intelligent pour le faire automagiquement si je l'appelle ReleaseObject()
Ma classe implémente IDisposable et je fais l'atmosphère suivante:
Runtime.InteropServices.Marshal.ReleaseComObject(myobj)
Ai-je besoin de prendre soin de libérer tous les objets internes qui sont créés par l'objet COM ou non? Et si je dois le faire, est-ce que l'ordre est important (d'abord interne puis parent vs parent puis interne)?