Share via


Classe ServiceProvider

Fornisce un provider di servizi unificato per Vspackage gestito.

Gerarchia di ereditarietà

System.Object
  Microsoft.VisualStudio.Shell.ServiceProvider

Spazio dei nomi:  Microsoft.VisualStudio.Shell
Assembly:  Microsoft.VisualStudio.Shell.11.0 (in Microsoft.VisualStudio.Shell.11.0.dll)

Sintassi

'Dichiarazione
<ComVisibleAttribute(True)> _
Public NotInheritable Class ServiceProvider _
    Implements IServiceProvider, IDisposable, IObjectWithSite
[ComVisibleAttribute(true)]
public sealed class ServiceProvider : IServiceProvider, 
    IDisposable, IObjectWithSite

Il tipo ServiceProvider espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico ServiceProvider(IServiceProvider) inizializza un'istanza con un'interfaccia esistente di IServiceProvider .
Metodo pubblico ServiceProvider(IServiceProvider, Boolean) Inizializza una nuova istanza della classe di ServiceProvider con un oggetto esistente di IServiceProvider e facoltativamente passa tutte le richieste al provider di servizi sottostante.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblicaMembro statico GlobalProvider Ottiene il provider di servizi globale per il thread chiamante.

In alto

Metodi

  Nome Descrizione
Metodo pubblicoMembro statico CreateFromSetSite creare un nuovo ServiceProvider per il sito specificato.
Metodo pubblico Dispose Liberare le risorse utilizzate dall'oggetto di ServiceProvider .
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetService(Guid) Ottiene il servizio specificato dal provider di servizi non gestito.
Metodo pubblico GetService(Type) Ottiene i servizi basati su tipi dal provider di servizi non gestito.
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico QueryService(Guid, Object%)
Metodo pubblico QueryService(Type, Object%)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaMetodo privato IObjectWithSite.GetSite Ottiene l'oggetto corrente del sito ai servizi di risoluzione.
Implementazione esplicita dell'interfacciaMetodo privato IObjectWithSite.SetSite Imposta l'oggetto del sito ai servizi di risoluzione.

In alto

Note

Questa classe fornisce un provider di servizi unificato per Vspackage gestito.Implementa IServiceProvider e accetta un'istanza di IServiceProvider come argomento del costruttore.

questa classe supporta sia il GUID che le ricerche basate tipo.Anche controlli per i problemi nativi comuni di implementazione, come oggetti che non implementano l'interfaccia di IUnknown o che richiedono un IID specifico con SID corrispondente.

Questa classe fornisce inoltre il supporto di debug nella versione di debug di .NET Framework (anche noto come una versione “controllata„).Impostare l'opzione TRACESERVICE di tracciatura a TraceVerbose causa tutte le richieste del servizio venga restituito al listener di debug.

Inoltre, test di ServiceProvider per determinate condizioni quando inoltrare una richiesta del servizio al codice nativo.Il codice gestito richiede l'interfaccia di IUnknown quando risolve i servizi, ma la maggior parte delle query nativi non fanno.Se un servizio non gestito non può essere ottenuto tramite un IID di IUnknown, una chiamata a viene effettuata nelle compilazioni archiviati con SID utilizzato al posto dell'IID.ServiceProvider genera un'asserzione se la query di SID ha esito positivo.

[!NOTA]

Restituire il risultato di query con esito positivo di SID in una compilazione controllata genera un comportamento diverso di debug e una build per la vendita del package VS, pertanto un'asserzione viene generata anziché.

Oltre alla traduzione delle richieste del servizio al provider di servizi COM, la classe di ServiceProvider fornisce i seguenti servizi non sostituibili:

IServiceProvider

Fornisce l'accesso all'oggetto del provider di servizi nativi COM.L'oggetto del provider di servizi può essere utilizzato direttamente per eseguire una query per altre interfacce.

IObjectWithSite

Consente di sostituire il provider di servizi COM.In diverse posizioni all'interno di Visual Studio un oggetto è primo fornito un sito e successivamente un altro, sito localizzato.Il sito localizzato può essere passato tramite l'implementazione di IObjectWithSite del provider di servizi per creare un unico contatto per i servizi.(Il metodo di SetSite viene ignorato se il sito non implementa IServiceProvider).

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Shell