Udostępnij za pośrednictwem


Klasa ServiceProvider

Zapewnia ujednolicony usługodawca zarządzanych VSPackages.

Hierarchia dziedziczenia

System.Object
  Microsoft.VisualStudio.Shell.ServiceProvider

Przestrzeń nazw:  Microsoft.VisualStudio.Shell
Zestaw:  Microsoft.VisualStudio.Shell.11.0 (w Microsoft.VisualStudio.Shell.11.0.dll)

Składnia

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

Typ ServiceProvider uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna ServiceProvider(IServiceProvider) Inicjuje instancji z istniejącym IServiceProvider interfejsu.
Metoda publiczna ServiceProvider(IServiceProvider, Boolean) Inicjuje nowe wystąpienie ServiceProvider klasy z istniejącym IServiceProvider obiektu i opcjonalnie przekazuje wszystkie żądania do podstawowej usługodawca.

Początek

Właściwości

  Nazwa Opis
Właściwość publicznaStatyczny element członkowski GlobalProvider Pobiera usługodawca globalnego dla wątku wywołującego.

Początek

Metody

  Nazwa Opis
Metoda publicznaStatyczny element członkowski CreateFromSetSite Tworzenie nowego ServiceProvider dla danej witryny.
Metoda publiczna Dispose Zwalnia zasoby używane przez ServiceProvider obiektu.
Metoda publiczna Equals Określa, czy określony obiekt jest równa bieżącego obiektu. (Odziedziczone z Object).
Metoda publiczna GetHashCode Służy jako funkcja mieszania dla określonego typu. (Odziedziczone z Object).
Metoda publiczna GetService(Guid) Określona usługa są pobierane z usługodawca niezarządzanego.
Metoda publiczna GetService(Type) Pobiera typ usługi z usługodawca niezarządzanego.
Metoda publiczna GetType Pobiera Type bieżącej instancji. (Odziedziczone z Object).
Metoda publiczna QueryService(Guid, Object%)
Metoda publiczna QueryService(Type, Object%)
Metoda publiczna ToString Zwraca ciąg, który reprezentuje bieżącego obiektu. (Odziedziczone z Object).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuMetoda prywatna IObjectWithSite.GetSite Pobiera bieżący obiekt lokacji rozwiązać usług.
Jawna implementacja interfejsuMetoda prywatna IObjectWithSite.SetSite Ustawia obiektu lokacji, aby rozwiązać usług.

Początek

Uwagi

Do tej klasy przewiduje zunifikowany usługodawca zarządzanych VSPackages.Implementuje IServiceProvider i ma wystąpienia IServiceProvider jako argument konstruktora.

Ta klasa obsługuje zarówno identyfikator GUID, jak i typu oparte wyszukiwania.Sprawdza również dla typowych pułapek macierzystej implementacji, takich jak obiekty, które nie należy implementować, IUnknown interfejsu, lub które wymagają szczególnych IID wraz ze zgodnym identyfikatorem SID.

Ta klasa zapewnia także obsługę debugowania w wersji do debugowania.NET Framework (również znany jako wersja "zaznaczone").Ustawienia przełącznika śledzenia TRACESERVICE do TraceVerbose powoduje, że wszystkie żądania usługi wyprowadzenie detektora debugowania.

Ponadto ServiceProvider badania niektórych warunków, przekazując żądanie usługi do kodu macierzystego.Wymaga kodu zarządzanego IUnknown usług interfejsu podczas rozpoznawania, ale najbardziej macierzystym kwerendy nie.Jeśli usługa niezarządzanych nie można uzyskać poprzez uzyskanie identyfikatora IID IUnknown, dodatkowe wywołania w sprawdzonych z identyfikatorem SID używane zamiast identyfikator IID.ServiceProviderpodnosi assert, jeśli kwerenda SID powiedzie się.

[!UWAGA]

Zwraca wynik udane kwerendy identyfikatora SID w sprawdzonej kompilacji powoduje różne zachowanie w debugowania i detalicznych kompilacjach VSPackage, więc assert jest wywoływane zamiast.

Oprócz tłumaczenia żądań usług do usługodawca COM, ServiceProvider klasy oferuje następujące usługi niewymiennym:

IServiceProvider

Zapewnia dostęp do obiektu macierzystego usługodawca COM.Obiekt usługodawca może służyć bezpośrednio kwerendy do innych interfejsów.

IObjectWithSite

Umożliwia zastąpienie usługodawca COM.W wielu miejscach w programie Visual Studio obiektu najpierw podawana jest jedna witryna, a później innego, bardziej zlokalizowane witryny.Więcej zlokalizowane witryny mogą być przekazywane za pośrednictwem usługodawca IObjectWithSite realizacji, aby utworzyć pojedynczy punkt kontaktu dla usługi.( SetSite Metoda jest ignorowane, jeśli witryna nie implementuje IServiceProvider.)

Bezpieczeństwo wątku

Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.Shell