Package.GetService(Type) Méthode

Définition

Obtient les services basés sur le type à partir du conteneur de services du package Visual Studio.

protected:
 virtual System::Object ^ GetService(Type ^ serviceType);
protected:
 virtual Platform::Object ^ GetService(Platform::Type ^ serviceType);
protected virtual object GetService (Type serviceType);
abstract member GetService : Type -> obj
override this.GetService : Type -> obj
Protected Overridable Function GetService (serviceType As Type) As Object

Paramètres

serviceType
Type

Type de service à récupérer.

Retours

Object

Instance du service demandé, ou null si le service est introuvable.

Exceptions

serviceType a la valeur null.

Remarques

Les VSPackages managés peuvent utiliser GetService pour obtenir des interfaces COM du kit de développement logiciel (SDK) d’environnement en interrogeant les assemblys d’interopérabilité du SDK.

Pour obtenir une interface spécifique du kit de développement logiciel (SDK) d’environnement :

  1. GetService doit être appelé avec un serviceType retourné en utilisant cette interface comme argument de typeof .

  2. La valeur de retour de GetService doit être convertie en type interface.

La conversion est nécessaire, car GetService recherche sur le GUID de type de service de base avec un type d’interface IUnknown .

Par exemple, il est possible d’obtenir une IVsUIShell interface avec :

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

Notes

Pour des raisons historiques, l' IVsTextManager interface ne peut pas être obtenue de cette manière. Pour obtenir une IVsTextManager interface, commencez VsTextManagerClass par utiliser (la classe implémentant l’interface) comme argument de typeof , puis effectuez un cast de la valeur de retour de GetService en IVsTextManager , par exemple : IVsTextManager mytext_mgr = myPackage.GetService(System.typeof(VsTextManagerClass)) as IVsTextManager;

S’applique à