Feedback

VB - COM-Objekte einfach freigeben

Veröffentlicht von am 05.08.2013
(0 Bewertungen)
Auch wenn es nicht mehr unbedingt zwingend notwendig ist, COM-Objekte explizit freizugeben, ist dies im Kontext mancher COM-Umgebungen (z.B. Outlook-AddIns) durchaus ratsam.

Die Freigabe über die statische Methode ReleaseComObject der Marshal-Klasse in den InteropServices ist jedoch ein wenig umständlich. Meistens muss erst noch geprüft werden, ob eine Referenz überhaupt noch gültig ist, Zudem kann eine Prüfung, ob es sich tatsächlich um ein COM-Objekt handelt, auch nicht schaden. Und meistens muss abschließend auch noch die Referenzvariable selbst freigegeben werden.

Das alles lässt sich mit einer Erweiterungsmethode für den Object-Typ in einem Rutsch erledigen.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

<Extension()> _
Public Function ReleaseComObject(ByRef thisObject As Object) As Integer
  Dim nRefCounter As Integer = -1

  If thisObject IsNot Nothing Then
    If System.Runtime.InteropServices.Marshal.IsComObject(thisObject) Then
        nRefCounter = System.Runtime.InteropServices.Marshal.ReleaseComObject(thisObject)
    End If
  End If

  thisObject = Nothing
  Return nRefCounter
End Function

Abgelegt unter Interop, COM.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!