RemotingServices.IsTransparentProxy(Object) Methode

Definition

Gibt einen booleschen Wert zurück, der angibt, ob es sich bei dem angegebenen Objekt um einen transparenten Proxy oder ein echtes Objekt handelt.

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

Parameter

proxy
Object

Der Verweis auf das zu überprüfende Objekt.

Gibt zurück

Ein boolescher Wert, der angibt, ob es sich bei dem im proxy-Parameter angegebenen Objekt um einen transparenten Proxy oder ein echtes Objekt handelt.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der IsTransparentProxy -Methode veranschaulicht, um zu bestimmen, ob ein Objekt ein Proxy oder ein echtes Objekt ist. Den vollständigen Beispielcode finden Sie im Beispiel für die AsyncResult -Klasse.

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

Hinweise

Ein Client, der ein Objekt über eine beliebige Remotinggrenze hinweg verwendet, verwendet tatsächlich einen transparenten Proxy für das Objekt. Der transparente Proxy vermittelt den Eindruck, dass sich das tatsächliche Objekt im Bereich des Clients befindet. Dies wird erreicht, indem Aufrufe an das reale Objekt mithilfe der Remotinginfrastruktur weitergeleitet werden.

Der transparente Proxy selbst ist in einem instance einer verwalteten Laufzeitklasse vom Typ RealProxyuntergebracht. RealProxy Implementiert einen Teil der Funktionalität, die erforderlich ist, um die Vorgänge vom transparenten Proxy weiterzuleiten. Ein Proxyobjekt erbt die zugeordnete Semantik verwalteter Objekte, z. B. Garbage Collection, Unterstützung für Member und Methoden, und kann erweitert werden, um neue Klassen zu bilden. Daher hat der Proxy einen doppelten Charakter; Zum einen muss es als Objekt derselben Klasse wie das Remoteobjekt (transparenter Proxy) fungieren, und zum anderen ist es selbst ein verwaltetes Objekt.

Ein Proxyobjekt kann ohne Rücksicht auf Remotingunterteilungen innerhalb eines AppDomainverwendet werden. Anwendungen müssen nicht zwischen Proxyverweise und Objektverweise unterscheiden. Dienstanbieter, die sich mit Problemen wie Aktivierung, Verwaltung der Lebensdauer und Transaktionen befassen, müssen jedoch solche Unterschiede treffen.

Gilt für:

Weitere Informationen