Comment : utilisation GetGlobalService
Quelquefois vous devrez peut-être obtenir un service à partir d'une fenêtre Outil ou d'un conteneur de contrôle qui n'ont pas été installés, ou bien a été installé avec un fournisseur de services qui ne sait pas celui que vous souhaitez. Par exemple, vous pouvez écrire dans le journal d'activité d'un contrôle. Pour plus d'informations sur ces éléments et d'autres scénarios, consultez Comment : résolvez les services.
vous pouvez obtenir la plupart des services de Visual Studio en appelant la méthode statique d' GetGlobalService .
GetGlobalService repose sur un fournisseur de services en cache qui est initialisé la première fois tout VSPackage dérivé d' Package se trouve. Vous devez vous assurer que cette condition est remplie, ou bien être préparé pour un service null.
heureusement, GetGlobalService fonctionne correctement le plus souvent.
Si un VSPackage fournit un service connu uniquement à un autre VSPackage, le VSPackage qui demande le service se trouve avant que le VSPackage fournissant le service chargé.
Si une fenêtre Outil est créée par un VSPackage, le VSPackage se trouve avant que la fenêtre Outil soit créée.
Si un conteneur de contrôle est hébergé par une fenêtre Outil créée par un VSPackage, le VSPackage se trouve avant que le conteneur de contrôle créé.
Pour obtenir un service à partir d'une fenêtre Outil ou d'un conteneur de contrôle
insérez ce code dans le constructeur, la fenêtre Outil, ou le conteneur de contrôle :
Dim log As IVsActivityLog = TryCast(Package.GetGlobalService(GetType(SVsActivityLog)), IVsActivityLog) If log Is Nothing Then Return End If
IVsActivityLog log = Package.GetGlobalService(typeof(SVsActivityLog)) as IVsActivityLog; if (log == null) return;
Ce code obtient un service et les casts de SVsActivityLog il à une interface de IVsActivityLog , qui peut être utilisée pour écrire dans le journal d'activité. Pour obtenir un exemple, consultez Comment : Utilisez les journaux d'activité.
Voir aussi
Tâches
Comment : résolvez les services