Partager via


ServiceProvider.GetService, méthode (Type)

Gets type- a basé des services du fournisseur de services non managé.

Espace de noms :  Microsoft.VisualStudio.Shell
Assembly :  Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)

Syntaxe

'Déclaration
Public Function GetService ( _
    serviceType As Type _
) As Object
public Object GetService(
    Type serviceType
)

Paramètres

  • serviceType
    Type : System.Type
    Type de service à récupérer.GUID de ce type est utilisé pour obtenir le service du fournisseur de services natif.

Valeur de retour

Type : System.Object
Le service demandé, ou nullRéférence Null (Nothing en Visual Basic) si le service n'a pas pu être trouvé.

Implémentations

IServiceProvider.GetService(Type)

Remarques

VSPackages managé peut utiliser GetService pour obtenir des interfaces COM de VSSDK en interrogeant les assemblys d'interopérabilité.Pour plus d'informations, consultez Interop Namespaces.

Pour obtenir une interface détaillent VSSDK :

  • GetService doit être appelé avec serviceType retourné à l'aide de cette interface comme argument à typeof.

  • La valeur de retour d'GetService doit être cast au type d'interface.Le " casting " est nécessaire car GetService interroge le type d'entrée pour GUID du service qui le fournit.Une interface d'IUnknown sur la classe implémentant le service est alors retournée, et doit être cast pour obtenir l'objet souhaité.(L'objet doit être pris en charge sur le service sous-jacent.)

    Par exemple, il peut obtenir une interface d'IVsUIShell avec :

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

[!REMARQUE]

Pour des raisons historiques, l'interface d'IVsTextManager qui ne peut pas être obtenue de cette manière.Pour obtenir une interface d'IVsTextManager, première utilisation VsTextManagerClass (la classe implémentant l'interface) comme argument à typeof, effectuez un cast ensuite la valeur de retour d'GetService à IVsTextManager, par exemple :

IVsTextManager mytext_mgr = myPackage.GetService(System.typeof(VsTextManagerClass)) as IVsTextManager;

Sécurité .NET Framework

Voir aussi

Référence

ServiceProvider Classe

GetService, surcharge

Microsoft.VisualStudio.Shell, espace de noms