RemotingServices.IsTransparentProxy(Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.