Gewusst wie: GetGlobalService Verwendung
In einigen Fällen müssen Sie möglicherweise einen Dienst eines Tool- oder Steuerelementcontainer ab, der nicht positioniert wurde. Andernfalls handelt es positioniert wurde mit einem Dienstanbieter, der nicht im Dienst auskennt, den Sie verwenden möchten. Beispielsweise können Sie mit dem Aktivitätsprotokoll aus einem Steuerelement schreiben. Weitere Informationen über diese und andere Szenarios finden Sie unter Gewusst wie: Problembehandlung von Diensten.
Sie können die meisten Visual Studio Dienste abrufen, indem Sie die statische GetGlobalService-Methode aufrufen.
GetGlobalService beruht auf einem zwischengespeicherten Dienstanbieter, das das erste Mal ein beliebiges VSPackage initialisiert wird, das von Package abgeleitet ist, wird positioniert. Sie müssen sicherstellen, dass diese Bedingung erfüllt ist, oder für einen Dienst vorbereitet sein. Andernfalls NULL
Glücklicherweise GetGlobalService Regel ordnungsgemäß funktioniert.
Wenn ein VSPackage eine Dienst bereitstellt, die nur einen anderen VSPackage bekannt ist, wird ein VSPackage, das den Dienst anfordert, positioniert, bevor ein VSPackage, das den Dienst bereitstellt, geladen werden.
Wenn ein Toolfenster von VSPackages erstellt wird, wird ein VSPackage positioniert, bevor das Toolfenster erstellt wird.
Wenn ein Steuerelementcontainer über ein Toolfenster gehostet wird, das von einem VSPackage erstellt wird, wird ein VSPackage positioniert, bevor der Steuerelementcontainer erstellt wird.
Um einen Dienst aus ein Tool- oder Steuerelementcontainer abrufen
Fügen Sie diesen Code im Konstruktor oder im Toolfenster im Steuerelementcontainer ein:
Dim log As IVsActivityLog = TryCast(Package.GetGlobalService(GetType(SVsActivityLog)), IVsActivityLog) If log Is Nothing Then Return End If
IVsActivityLog log = Package.GetGlobalService(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: Problembehandlung von Diensten