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