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 | |
---|---|---|
![]() |
ServiceProvider(IServiceProvider) | Inicjuje instancji z istniejącym IServiceProvider interfejsu. |
![]() |
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 | |
---|---|---|
![]() ![]() |
GlobalProvider | Pobiera usługodawca globalnego dla wątku wywołującego. |
Początek
Metody
Nazwa | Opis | |
---|---|---|
![]() ![]() |
CreateFromSetSite | Tworzenie nowego ServiceProvider dla danej witryny. |
![]() |
Dispose | Zwalnia zasoby używane przez ServiceProvider obiektu. |
![]() |
Equals | Określa, czy określony obiekt jest równa bieżącego obiektu. (Odziedziczone z Object). |
![]() |
GetHashCode | Służy jako funkcja mieszania dla określonego typu. (Odziedziczone z Object). |
![]() |
GetService(Guid) | Określona usługa są pobierane z usługodawca niezarządzanego. |
![]() |
GetService(Type) | Pobiera typ usługi z usługodawca niezarządzanego. |
![]() |
GetType | Pobiera Type bieżącej instancji. (Odziedziczone z Object). |
![]() |
QueryService(Guid, Object%) | |
![]() |
QueryService(Type, Object%) | |
![]() |
ToString | Zwraca ciąg, który reprezentuje bieżącego obiektu. (Odziedziczone z Object). |
Początek
Jawne implementacje interfejsu
Nazwa | Opis | |
---|---|---|
![]() ![]() |
IObjectWithSite.GetSite | Pobiera bieżący obiekt lokacji rozwiązać usług. |
![]() ![]() |
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:
Zapewnia dostęp do obiektu macierzystego usługodawca COM.Obiekt usługodawca może służyć bezpośrednio kwerendy do innych interfejsów.
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.