Partager via


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
Méthode publique ServiceProvider(IServiceProvider) Initialise une instance avec une interface existante d'IServiceProvider.
Méthode publique 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
Propriété publiqueMembre statique GlobalProvider Obtient le fournisseur de services global pour le thread appelant.

Début

Méthodes

  Nom Description
Méthode publiqueMembre statique CreateFromSetSite Créez un nouveau system.iserviceprovider de service pour le site donné.
Méthode publique Dispose Libère les ressources utilisées par l'objet ServiceProvider.
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée 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.)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetService(Guid) Obtient le service spécifié du fournisseur de services non managé.
Méthode publique GetService(Type) Gets type- a basé des services du fournisseur de services non managé.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique QueryService(Guid, Object%)
Méthode publique QueryService(Type, Object%)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée IObjectWithSite.GetSite Obtient l'objet actuel de site aux services de résolution.
Implémentation d'interface expliciteMéthode privée 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 :

IServiceProvider

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.

IObjectWithSite

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.

Voir aussi

Référence

Microsoft.VisualStudio.Shell, espace de noms