Condividi tramite


Metodo Package.GetService

Ottiene i servizi basati su tipi dal contenitore del servizio di un VSPackage.

Spazio dei nomi:  Microsoft.VisualStudio.Shell
Assembly:  Microsoft.VisualStudio.Shell.11.0 (in Microsoft.VisualStudio.Shell.11.0.dll)

Sintassi

'Dichiarazione
Protected Function GetService ( _
    serviceType As Type _
) As Object
protected Object GetService(
    Type serviceType
)

Parametri

  • serviceType
    Tipo: System.Type
    il tipo di servizio da recuperare.

Valore restituito

Tipo: System.Object
Un'istanza del servizio richiesto, o nullriferimento null (Nothing in Visual Basic) se il servizio non può essere trovato.

Eccezioni

Eccezione Condizione
ArgumentNullException

serviceType è nullriferimento null (Nothing in Visual Basic).

Note

Vspackage gestito può utilizzare GetService per ottenere le interfacce COM dell'ambiente SDK eseguire una query agli assembly di interoperabilità di SDK.

Per ottenere un'interfaccia specifica dell'ambiente SDK:

  1. GetService deve essere chiamato da serviceType restituito utilizzando tale interfaccia come argomento a typeof.

  2. Il valore restituito di GetService necessario eseguire il cast al tipo di interfaccia.

Il cast è necessaria perché GetService trova sul tipo di base del servizio GUID con un tipo di interfaccia di IUnknown.

Ad esempio, uno può ottenere un'interfaccia di IVsUIShell con:

myUIShell = myPackage.GetService(System.typeof(IVsUIShell)) as IVsUIShell;

[!NOTA]

Per motivi di tipo storico, l'interfaccia di IVsTextManager non può essere recuperata in questo modo.Per ottenere un'interfaccia di IVsTextManager , il primo utilizzo VsTextManagerClass (la classe che implementa l'interfaccia) come argomento a typeof, quindi eseguire il cast del valore restituito di GetService a IVsTextManager, ad esempio:IVsTextManager mytext_mgr = myPackage.GetService(System.typeof(VsTextManagerClass)) as IVsTextManager;

Sicurezza di .NET Framework

Vedere anche

Riferimenti

Package Classe

Spazio dei nomi Microsoft.VisualStudio.Shell

IServiceProvider

IVsTextManager

Type

ArgumentNullException