RemotingServices.IsTransparentProxy(Object) Metod

Definition

Returnerar ett booleskt värde som anger om det angivna objektet är en transparent proxy eller ett verkligt 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

Parametrar

proxy
Object

Referensen till objektet som ska kontrolleras.

Returer

Ett booleskt värde som anger om objektet som anges i parametern proxy är en transparent proxy eller ett verkligt objekt.

Exempel

I följande kodexempel visas hur metoden används IsTransparentProxy för att avgöra om ett objekt är en proxy eller ett verkligt objekt. Den fullständiga exempelkoden finns i exemplet för AsyncResult klassen.

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

Kommentarer

En klient som använder ett objekt över alla typer av fjärrkommunikationsgränser använder faktiskt en transparent proxy för objektet. Den transparenta proxyn ger intrycket att det faktiska objektet finns i klientens utrymme. Det uppnår detta genom att vidarebefordra anrop som görs på det till det verkliga objektet med hjälp av fjärrkommunikationsinfrastrukturen.

Den transparenta proxyn är i sig inrymd av en instans av en hanterad körningsklass av typen RealProxy. Implementerar RealProxy en del av de funktioner som krävs för att vidarebefordra åtgärderna från den transparenta proxyn. Ett proxyobjekt ärver den associerade semantiken för hanterade objekt, till exempel skräpinsamling, stöd för medlemmar och metoder, och kan utökas för att bilda nya klasser. Proxyn har således en dubbel karaktär. Å ena sidan måste det fungera som ett objekt i samma klass som fjärrobjektet (transparent proxy) och å andra sidan är det ett hanterat objekt självt.

Ett proxyobjekt kan användas utan hänsyn till några underavdelningar för fjärrkommunikation i en AppDomain. Program behöver inte skilja mellan proxyreferenser och objektreferenser. Tjänsteleverantörer som hanterar problem som aktivering, livslängdshantering och transaktioner måste dock göra sådana distinktioner.

Gäller för

Se även