RemotingServices.IsTransparentProxy(Object) Metoda

Definice

Vrátí logickou hodnotu, která označuje, zda daný objekt je transparentní proxy nebo skutečný objekt.

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

Odkaz na objekt, který chcete zkontrolovat.

Návraty

Logická hodnota, která označuje, zda je objekt zadaný v proxy parametru transparentní proxy nebo skutečný objekt.

Příklady

Následující příklad kódu ukazuje použití IsTransparentProxy metody k určení, zda je objekt proxy nebo skutečný objekt. Úplný ukázkový kód najdete v příkladu AsyncResult třídy.

// 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

Poznámky

Klient, který používá objekt napříč jakýmkoli druhem hranice vzdálené komunikace, ve skutečnosti používá transparentní proxy pro objekt. Transparentní proxy server dává dojem, že se skutečný objekt nachází v prostoru klienta. Dosahuje toho přesměrováním volání provedených na skutečný objekt pomocí infrastruktury vzdálené komunikace.

Transparentní proxy server se nachází v instanci spravované třídy modulu runtime typu RealProxy. Implementuje RealProxy část funkce potřebné k předávání operací z transparentního proxy serveru. Objekt proxy dědí přidruženou sémantiku spravovaných objektů, jako je uvolňování paměti, podpora členů a metod a lze jej rozšířit tak, aby vytvořily nové třídy. Proxy tedy má duální povahu; na jedné straně musí fungovat jako objekt stejné třídy jako vzdálený objekt (transparentní proxy) a na druhé je spravovaný objekt sám.

Objekt proxy lze použít bez ohledu na jakékoli subdivisions v rámci AppDomain. Aplikace nemusí rozlišovat mezi odkazy na proxy server a odkazy na objekty. Poskytovatelé služeb, kteří se zabývají problémy, jako je aktivace, správa životnosti a transakce, ale musí takové rozdíly rozlišovat.

Platí pro

Viz také