Package.GetService(Type) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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 :
GetServicedoit être appelé avec unserviceTyperetourné en utilisant cette interface comme argument detypeof.La valeur de retour de
GetServicedoit ê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;