RemotingServices.IsTransparentProxy(Object) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.