ServiceProvider, classe
Fournit un fournisseur de services unifié pour les VSPackages managé.
Hiérarchie d'héritage
System.Object
Microsoft.VisualStudio.Shell.ServiceProvider
Espace de noms : Microsoft.VisualStudio.Shell
Assembly : Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)
Syntaxe
'Déclaration
<ComVisibleAttribute(True)> _
Public NotInheritable Class ServiceProvider _
Implements IServiceProvider, IDisposable, IObjectWithSite
[ComVisibleAttribute(true)]
public sealed class ServiceProvider : IServiceProvider,
IDisposable, IObjectWithSite
Le type ServiceProvider expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
ServiceProvider(IServiceProvider) | Initialise une instance avec une interface existante d'IServiceProvider. | |
ServiceProvider(IServiceProvider, Boolean) | Initialise une nouvelle instance de la classe d'ServiceProvider avec un objet existant d'IServiceProvider et passe éventuellement toutes les demandes au fournisseur de services sous-jacent. |
Début
Propriétés
Nom | Description | |
---|---|---|
GlobalProvider | Obtient le fournisseur de services global pour le thread appelant. |
Début
Méthodes
Nom | Description | |
---|---|---|
CreateFromSetSite | Créez un nouveau system.iserviceprovider de service pour le site donné. | |
Dispose | Libère les ressources utilisées par l'objet ServiceProvider. | |
Equals | Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetService(Guid) | Obtient le service spécifié du fournisseur de services non managé. | |
GetService(Type) | Gets type- a basé des services du fournisseur de services non managé. | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
QueryService(Guid, Object%) | ||
QueryService(Type, Object%) | ||
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
IObjectWithSite.GetSite | Obtient l'objet actuel de site aux services de résolution. | |
IObjectWithSite.SetSite | Définit l'objet de site aux services de résolution. |
Début
Remarques
Cette classe fournit un fournisseur de services unifié pour les VSPackages managé.Il implémente IServiceProvider et prend une instance d'IServiceProvider comme argument de constructeur.
Cette classe prend en charge GUID et des recherches basées par type.Il vérifie également les pièges natifs communs d'implémentation, tels que les objets qui n'implémentent pas l'interface d'IUnknown ou qui requièrent un IID détail avec une correspondance SID.
Cette classe fournit également la prise en charge du débogage dans la version debug de .NET Framework (également appelé « a activé la version »).Définir le commutateur TRACESERVICE de suivi à TraceVerbose provoque toutes les requêtes de service d'être sortie à l'écouteur de débogage.
En outre, tests d'ServiceProvider pour certaines conditions en transférant une requête de service à code natif.Code managé requiert l'interface d'IUnknown en résolvant des services, mais la plupart des requêtes natives non.Si un service non managé ne peut pas être obtenu par un IID d'IUnknown, un appel supplémentaire s'effectue en test des générations avec le SID utilisé à la place de l'IID.ServiceProvider déclenche une assertion si la requête de SID réussit.
[!REMARQUE]
Retourner le résultat d'une requête réussie de SID dans une génération activée provoque un comportement différent dans le débogage et des versions commerciales du VSPackage, donc une assertion est déclenchée à la place.
En plus de traduire des requêtes de service au fournisseur de services de COM, la classe d'ServiceProvider offre les services non-remplaçables suivants :
Permet d'accéder à l'objet natif de fournisseur de services de COM.L'objet de fournisseur de services peut être utilisé pour s'interroger directement pour d'autres interfaces.
Fournit une manière de remplacer le fournisseur de services de COM.Dans de nombreux emplacements dans Visual Studio un objet est premier donné un site, et qu'ultérieurement un autre, site plus localisé.Le site plus localisé peut être passé à l'implémentation d'IObjectWithSite du fournisseur de services pour créer un seul point de contact pour les services.(La méthode d'SetSite est ignorée si le site n'implémente pas IServiceProvider.)
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.