Sdílet prostřednictvím


RemotingServices.IsTransparentProxy(Object) Metoda

Definice

Vrátí logickou hodnotu, která označuje, zda je daný objekt 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 objekt zadaný v parametru proxy je transparentní proxy nebo skutečný objekt.

Příklady

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

// 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 přes jakýkoli druh hranice vzdálené komunikace, ve skutečnosti používá transparentní proxy pro objekt. Transparentní proxy server působí dojmem, že se skutečný objekt nachází v prostoru klienta. Dosahuje toho tím, že přesměruje volání provedená na skutečném objektu pomocí infrastruktury vzdálené komunikace.

Samotný transparentní proxy server je uložen instancí spravované třídy modulu runtime typu RealProxy. Implementuje RealProxy část funkcí potřebných 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 může být rozšířen tak, aby vytvořil nové třídy. Proto proxy má duální povahu; na jedné straně musí fungovat jako objekt stejné třídy jako vzdálený objekt (transparentní proxy server) a na druhé straně se jedná o samotný spravovaný objekt.

Objekt proxy lze použít bez ohledu na jakékoli dílčí dělení vzdálené komunikace v rámci objektu AppDomain. Aplikace nemusí rozlišovat mezi odkazy na proxy server a odkazy na objekty. Poskytovatelé služeb, kteří řeší problémy, jako je aktivace, správa životnosti a transakce, však musí rozlišovat.

Platí pro

Viz také