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]

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

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