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]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

VB.NET 2017/2015/2013 Aufbau

Nach dieser Schulung können Sie mittels objektorientierter Modelle in VB.NET 2017/2015/2013 wiederverwendbare Elemente eigenständig erstellen.

<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!