Condividi tramite


Metodo ServiceProvider.GetService (Type)

Ottiene i servizi basati su tipi dal provider di servizi non gestito.

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

Sintassi

'Dichiarazione
Public Function GetService ( _
    serviceType As Type _
) As Object
public Object GetService(
    Type serviceType
)

Parametri

  • serviceType
    Tipo: System.Type
    il tipo di servizio da recuperare.Il GUID di questo tipo viene utilizzato per ottenere il servizio dal provider di servizi nativo.

Valore restituito

Tipo: System.Object
Il servizio richiesto, o nullriferimento null (Nothing in Visual Basic) se il servizio non è disponibile.

Implementa

IServiceProvider.GetService(Type)

Note

Vspackage gestito può utilizzare GetService per ottenere le interfacce COM di VSSDK eseguire una query agli assembly di interoperabilità.Per ulteriori informazioni, vedere Interop Namespaces.

Per ottenere un'interfaccia specifica di VSSDK:

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

  • Il valore restituito di GetService necessario eseguire il cast al tipo di interfaccia.Il cast è necessaria perché GetService eseguire una query sul tipo di input per il GUID del servizio che fornisce.Un'interfaccia di IUnknown sulla classe che implementa il servizio viene restituito e deve essere eseguito il cast per ottenere l'oggetto desiderato.(L'oggetto deve essere supportato sul servizio sottostante.)

    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 che 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

ServiceProvider Classe

Overload GetService

Spazio dei nomi Microsoft.VisualStudio.Shell