Metoda Package.GetService —
Pobiera typ usługi z kontenera usługi VSPackage.
Przestrzeń nazw: Microsoft.VisualStudio.Shell
Zestaw: Microsoft.VisualStudio.Shell.11.0 (w Microsoft.VisualStudio.Shell.11.0.dll)
Składnia
'Deklaracja
Protected Function GetService ( _
serviceType As Type _
) As Object
protected Object GetService(
Type serviceType
)
Parametry
- serviceType
Typ: System.Type
Typ usługi do pobrania.
Wartość zwracana
Typ: System.Object
Wystąpienie żądanej usługi lub nullodwołanie o wartości null (Nothing w języku Visual Basic) , jeśli nie można odnaleźć usługi.
Wyjątki
Wyjątek | Warunek |
---|---|
ArgumentNullException | serviceTypeis nullodwołanie o wartości null (Nothing w języku Visual Basic). |
Uwagi
Można użyć zarządzanych VSPackages GetService uzyskanie interfejsów COM SDK środowiska przez badanie zestawy międzyoperacyjne SDK.
Aby uzyskać określony interfejs środowiska SDK:
GetServicepowinna zostać wywołana z serviceType zwracane przy użyciu tego interfejsu jako argument do typeof.
Wartość zwracana przez GetService musi być rzutowane na typ interfejsu.
Rzutowanie jest konieczne ponieważ GetService wyszukuje na podstawie usługi wpisz identyfikator GUID z typu interfejsu, z IUnknown.
Na przykład, można pobrać jednego IVsUIShell interfejsu:
myUIShell = myPackage.GetService(System.typeof(IVsUIShell)) as IVsUIShell;
[!UWAGA]
Ze względów historycznych IVsTextManager interfejs nie może być uzyskana w ten sposób.Aby uzyskać IVsTextManager interfejsu, należy najpierw użyć VsTextManagerClass (klasa wykonawczych interfejsu) jako argument do typeof, następnie oddanych wartość zwracaną przez GetService do IVsTextManager, na przykład: IVsTextManager mytext_mgr = myPackage.GetService(System.typeof(VsTextManagerClass)) as IVsTextManager;
Zabezpieczenia programu .NET Framework
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Przy użyciu bibliotek z częściowo zaufanego kodu..