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 | |
---|---|---|
![]() |
ServiceProvider(IServiceProvider) | inizializza un'istanza con un'interfaccia esistente di IServiceProvider . |
![]() |
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 | |
---|---|---|
![]() ![]() |
GlobalProvider | Ottiene il provider di servizi globale per il thread chiamante. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
![]() ![]() |
CreateFromSetSite | creare un nuovo ServiceProvider per il sito specificato. |
![]() |
Dispose | Liberare le risorse utilizzate dall'oggetto di ServiceProvider . |
![]() |
Equals | Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object) |
![]() |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) |
![]() |
GetService(Guid) | Ottiene il servizio specificato dal provider di servizi non gestito. |
![]() |
GetService(Type) | Ottiene i servizi basati su tipi dal provider di servizi non gestito. |
![]() |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
![]() |
QueryService(Guid, Object%) | |
![]() |
QueryService(Type, Object%) | |
![]() |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Implementazioni esplicite dell'interfaccia
Nome | Descrizione | |
---|---|---|
![]() ![]() |
IObjectWithSite.GetSite | Ottiene l'oggetto corrente del sito ai servizi di risoluzione. |
![]() ![]() |
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:
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.
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.