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
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.