Język

RemotingServices.IsTransparentProxy(Object) Metoda

Definicja

Zwraca wartość logiczną wskazującą, czy dany obiekt jest przezroczystym serwerem proxy, czy obiektem rzeczywistym.

public:
 static bool IsTransparentProxy(System::Object ^ proxy);
public static bool IsTransparentProxy(object proxy);
static member IsTransparentProxy : obj -> bool
Public Shared Function IsTransparentProxy (proxy As Object) As Boolean

Parametry

proxy
Object

Odwołanie do obiektu do sprawdzenia.

Zwraca

Wartość logiczna wskazująca, czy obiekt określony w parametrze proxy jest przezroczystym serwerem proxy, czy obiektem rzeczywistym.

Przykłady

W poniższym przykładzie kodu pokazano użycie IsTransparentProxy metody w celu określenia, czy obiekt jest serwerem proxy, czy prawdziwym obiektem. Pełny przykładowy kod można znaleźć w przykładzie AsyncResult dla klasy .

// Creates an instance of a context-bound type SampleSynchronized.
SampleSynchronized^ sampSyncObj = gcnew SampleSynchronized;

// Checks whether the Object* is a proxy, since it is context-bound.
if ( RemotingServices::IsTransparentProxy( sampSyncObj ) )
   Console::WriteLine( "sampSyncObj is a proxy." );
else
   Console::WriteLine( "sampSyncObj is NOT a proxy." );
// Creates an instance of a context-bound type SampleSynchronized.
SampleSynchronized sampSyncObj = new SampleSynchronized();

// Checks whether the object is a proxy, since it is context-bound.
if (RemotingServices.IsTransparentProxy(sampSyncObj))
    Console.WriteLine("sampSyncObj is a proxy.");
else
    Console.WriteLine("sampSyncObj is NOT a proxy.");
' Creates an instance of a context-bound type SampleSynchronized.
Dim sampSyncObj As New SampleSynchronized()

' Checks whether the object is a proxy, since it is context-bound.
If RemotingServices.IsTransparentProxy(sampSyncObj) Then
   Console.WriteLine("sampSyncObj is a proxy.")
Else
   Console.WriteLine("sampSyncObj is NOT a proxy.")
End If

Uwagi

Klient, który używa obiektu w dowolnym rodzaju granicy komunikacji automatycznej, faktycznie używa przezroczystego serwera proxy dla obiektu. Przezroczysty serwer proxy sprawia wrażenie, że rzeczywisty obiekt znajduje się w przestrzeni klienta. Umożliwia to przekazanie wywołań do obiektu rzeczywistego przy użyciu infrastruktury komunikacji telefonicznej.

Przezroczysty serwer proxy jest sam w domu przez wystąpienie zarządzanej klasy środowiska uruchomieniowego typu RealProxy. Funkcja RealProxy implementuje część funkcji wymaganą do przekazywania operacji z przezroczystego serwera proxy. Obiekt proxy dziedziczy skojarzona semantyka zarządzanych obiektów, takich jak odzyskiwanie pamięci, obsługa elementów członkowskich i metod, i może zostać rozszerzona w celu utworzenia nowych klas. W związku z tym serwer proxy ma podwójny charakter; z jednej strony musi działać jako obiekt tej samej klasy co obiekt zdalny (przezroczysty serwer proxy), a drugi jest obiektem zarządzanym.

Obiekt proxy można używać bez względu na jakiekolwiek podziały komunikacji zdalnie w obrębie obiektu AppDomain. Aplikacje nie muszą rozróżniać odwołań serwera proxy i odwołań do obiektów. Jednak dostawcy usług, którzy mają do czynienia z problemami, takimi jak aktywacja, zarządzanie okresem istnienia i transakcje, muszą dokonać takich rozróżnienia.

Dotyczy

Zobacz też