Freigeben über


RemotingServices.IsTransparentProxy-Methode

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

Namespace: System.Runtime.Remoting
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function IsTransparentProxy ( _
    proxy As Object _
) As Boolean
'Usage
Dim proxy As Object
Dim returnValue As Boolean

returnValue = RemotingServices.IsTransparentProxy(proxy)
public static bool IsTransparentProxy (
    Object proxy
)
public:
static bool IsTransparentProxy (
    Object^ proxy
)
public static boolean IsTransparentProxy (
    Object proxy
)
public static function IsTransparentProxy (
    proxy : Object
) : boolean

Parameter

  • proxy
    Der Verweis auf das zu überprüfende Objekt.

Rückgabewert

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

Hinweise

Ein Client, der ein Objekt über jede Art von Remotegrenzen hinweg verwendet, verwendet eigentlich einen transparenten Proxy für dieses Objekt. Der transparente Proxy vermittelt den Eindruck, dass sich das eigentliche Objekt auf dem Client befindet. Dies wird dadurch erreicht, dass der Proxy an ihn gerichtete Aufrufe über die Remotinginfrastruktur an das eigentliche Objekt weiterleitet.

Der transparente Proxy selbst befindet sich in einer Instanz einer verwalteten Laufzeitklasse vom Typ RealProxy. RealProxy implementiert einen Teil der Funktionen, die zum Weiterleiten der Operationen vom transparenten Proxy erforderlich sind. Proxyobjekte erben die Unterstützung für Member und Methoden sowie die zugeordnete Semantik verwalteter Objekte wie der Garbage Collection. Sie können außerdem erweitert werden, um neue Klassen zu bilden. Ein Proxy kann daher unter zwei Aspekten gesehen werden: einerseits muss er als Objekt derselben Klasse wie das Remoteobjekt (transparenter Proxy) fungieren, und andererseits ist er selbst ein verwaltetes Objekt.

Ein Proxyobjekt kann ohne Berücksichtigung der Remoteuntereinheiten in einer AppDomain verwendet werden. Anwendungen müssen nicht zwischen Proxy- und Objektverweisen unterscheiden. Für Dienstanbieter aus Bereichen wie Aktivierung, Lebensdauerverwaltung und Transaktionen sind solche Unterscheidungen jedoch erforderlich.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit der IsTransparentProxy-Methode bestimmt wird, ob es sich bei einem Objekt um einen Proxy oder ein tatsächliches Objekt handelt. Den vollständigen Beispielcode finden Sie im Beispiel zur AsyncResult-Klasse.

' Creates an instance of a context-bound type SampleSynchronized.
Dim sampSyncObj As New SampleSyncronized()

' 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 
// Creates an instance of a context-bound type SampleSynchronized.
SampleSyncronized sampSyncObj = new SampleSyncronized();

// 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.
SampleSyncronized^ sampSyncObj = gcnew SampleSyncronized;

// 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.
SampleSyncronized sampSyncObj = new SampleSyncronized();
// 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.");
}

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

RemotingServices-Klasse
RemotingServices-Member
System.Runtime.Remoting-Namespace
RealProxy
ObjRef-Klasse