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
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.