Freigeben über


Gewusst wie: Nehmen Sie einen Dienst in Anspruch

Jede verwaltete VSPackages, das von Package abgeleitet ist und ordnungsgemäß positioniert wurde, kann es sich um einen beliebigen globalen Dienst anfordern. Da die Paket IServiceProviderKlasse implementiert, ist jedes VSPackage, die vom Paket berechnet, auch ein Dienstanbieter.

Wenn Visual Studio verwalteten VSPackages geladen wird, führt es einen IServiceProvider Dienstanbieter an die Methode SetSite Paket während der Initialisierung VSPackages und positioniert. Die Paket Klasse bindet diesen Dienstanbieter und stellt die GetService-Methode zum Abrufen von Diensten bereit.

Hinweis

Da der VSPackage-Konstruktor aufgerufen wird, bevor ein VSPackage positioniert ist, werden globale Dienste aus dem VSPackage-Konstruktor in der Regel nicht verfügbar.Weitere Informationen finden Sie unter Gewusst wie: Problembehandlung von Diensten für eine Problemumgehung.

Um einen Dienst in Anspruch nehmen

  • Fügen Sie diesen Code in jede Methode außer dem VSPackage-Konstruktor ein:

    Dim log As IVsActivityLog = TryCast(GetService(GetType(SVsActivityLog)), IVsActivityLog)
    If log Is Nothing Then 
        Return 
    End If
    
                IVsActivityLog log =
        GetService(typeof(SVsActivityLog)) as IVsActivityLog;
                if (log == null) return;
    

    Dieser Code ruft ein SVsActivityLog-Dienst und wandelt es in eine Schnittstelle um IVsActivityLog , die verwendet werden kann, um auf den Aktivitätsprotokoll zu schreiben. Ein entsprechendes Beispiel finden Sie unter Gewusst wie: Verwenden Sie das Aktivitätsprotokoll.

Siehe auch

Aufgaben

Gewusst wie: Bereitstellung Sie einen Dienst

Konzepte

Visual Studio-Erweiterbarkeits-Beispiele

Dienst-Grundlagen

Weitere Ressourcen

Dienste