RemotingServices.IsTransparentProxy(Object) Méthode

Définition

Retourne une valeur booléenne qui indique si l’objet donné est un proxy transparent ou un objet réel.

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

Paramètres

proxy
Object

Référence à l’objet à vérifier.

Retours

Valeur booléenne qui indique si l’objet spécifié dans le proxy paramètre est un proxy transparent ou un objet réel.

Exemples

L’exemple de code suivant illustre l’utilisation de la IsTransparentProxy méthode pour déterminer si un objet est un proxy ou un objet réel. Pour obtenir l’exemple de code complet, consultez l’exemple de la AsyncResult classe.

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

Remarques

Un client qui utilise un objet sur n’importe quel type de limite de communication à distance utilise en fait un proxy transparent pour l’objet. Le proxy transparent donne l’impression que l’objet réel réside dans l’espace du client. Pour ce faire, il transfère les appels effectués sur l’objet réel à l’aide de l’infrastructure de communication à distance.

Le proxy transparent est lui-même hébergé par une instance d’une classe runtime managée de type RealProxy. Il RealProxy implémente une partie de la fonctionnalité nécessaire pour transférer les opérations à partir du proxy transparent. Un objet proxy hérite de la sémantique associée d’objets managés tels que le garbage collection, la prise en charge des membres et des méthodes, et peut être étendu pour former de nouvelles classes. Ainsi, le proxy a une double nature ; d’une part, il doit agir en tant qu’objet de la même classe que l’objet distant (proxy transparent), et d’autre part, il s’agit d’un objet managé lui-même.

Un objet proxy peut être utilisé sans tenir compte des sous-divisions de communication à distance au sein d’un AppDomain. Les applications n’ont pas besoin de faire la distinction entre les références proxy et les références d’objet. Toutefois, les fournisseurs de services qui traitent de problèmes tels que l’activation, la gestion de la durée de vie et les transactions doivent faire de telles distinctions.

S’applique à

Voir aussi