RemotingServices.IsTransparentProxy(Object) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een Booleaanse waarde die aangeeft of het opgegeven object een transparante proxy of een echt object is.
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
Parameters
- proxy
- Object
De verwijzing naar het object dat moet worden gecontroleerd.
Retouren
Een Booleaanse waarde die aangeeft of het object dat is opgegeven in de proxy parameter een transparante proxy of een echt object is.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe de IsTransparentProxy methode wordt gebruikt om te bepalen of een object een proxy of een echt object is. Zie het voorbeeld voor de AsyncResult klasse voor de volledige voorbeeldcode.
// 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
Opmerkingen
Een client die gebruikmaakt van een object over elk soort externe grens gebruikt, maakt daadwerkelijk gebruik van een transparante proxy voor het object. De transparante proxy geeft de indruk dat het werkelijke object zich in de ruimte van de client bevindt. Dit wordt bereikt door aanroepen door te sturen naar het echte object met behulp van de externe infrastructuur.
De transparante proxy wordt zelf ondergebracht door een exemplaar van een beheerde runtimeklasse van het type RealProxy. Hiermee RealProxy wordt een deel van de functionaliteit geïmplementeerd die nodig is om de bewerkingen vanuit de transparante proxy door te sturen. Een proxyobject neemt de bijbehorende semantiek van beheerde objecten over, zoals garbagecollection, ondersteuning voor leden en methoden, en kan worden uitgebreid om nieuwe klassen te vormen. De proxy heeft dus een dubbele aard; enerzijds moet het fungeren als een object van dezelfde klasse als het externe object (transparante proxy), en anderzijds is het een beheerd object zelf.
Een proxyobject kan worden gebruikt zonder rekening te houden met eventuele externe onderverdelingen binnen een AppDomain. Toepassingen hoeven geen onderscheid te maken tussen proxyverwijzingen en objectverwijzingen. Serviceproviders die te maken hebben met problemen zoals activering, levensduurbeheer en transacties, moeten dergelijke onderscheid maken.