RemotingServices.IsTransparentProxy(Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un valor de tipo booleano que indica si el objeto especificado es un proxy transparente o un objeto real.
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
Parámetros
- proxy
- Object
Referencia al objeto que se va a comprobar.
Devoluciones
Valor de tipo booleano que indica si el objeto especificado en el parámetro proxy
es un proxy transparente o un objeto real.
Ejemplos
En el IsTransparentProxy ejemplo de código siguiente se muestra el uso del método para determinar si un objeto es un proxy o un objeto real. Para obtener el código de ejemplo completo, vea el ejemplo de la AsyncResult clase .
// 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
Comentarios
Un cliente que usa un objeto en cualquier tipo de límite de comunicación remota está usando realmente un proxy transparente para el objeto. El proxy transparente da la impresión de que el objeto real reside en el espacio del cliente. Para ello, reenvía las llamadas realizadas en él al objeto real mediante la infraestructura de comunicación remota.
El proxy transparente se hospeda en sí mismo mediante una instancia de una clase en tiempo de ejecución administrada de tipo RealProxy. RealProxy implementa una parte de la funcionalidad necesaria para reenviar las operaciones desde el proxy transparente. Un objeto proxy hereda la semántica asociada de objetos administrados, como la recolección de elementos no utilizados, la compatibilidad con miembros y métodos, y se puede extender para formar nuevas clases. Por lo tanto, el proxy tiene una naturaleza dual; por un lado, debe actuar como un objeto de la misma clase que el objeto remoto (proxy transparente) y, por otro, es un objeto administrado en sí.
Un objeto proxy se puede usar sin tener en cuenta ninguna subdivisión de comunicación remota dentro de .AppDomain Las aplicaciones no necesitan distinguir entre las referencias de proxy y las referencias de objeto. Sin embargo, los proveedores de servicios que tratan problemas como la activación, la administración de la duración y las transacciones deben hacer tales diferencias.