RemotingServices.IsTransparentProxy(Object) Método

Definição

Devolve um valor booleano que indica se o objeto dado é um proxy transparente ou um 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

A referência ao objeto a verificar.

Devoluções

Um valor booleano que indica se o objeto especificado no proxy parâmetro é um proxy transparente ou um objeto real.

Exemplos

O exemplo de código seguinte demonstra a utilização do IsTransparentProxy método para determinar se um objeto é um proxy ou um objeto real. Para o código completo do exemplo, veja o exemplo da 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

Observações

Um cliente que usa um objeto através de qualquer tipo de fronteira remota está, na verdade, a usar um proxy transparente para o objeto. O proxy transparente dá a impressão de que o objeto real reside no espaço do cliente. Ele consegue isto encaminhando as chamadas feitas para o objeto real usando a infraestrutura remota.

O proxy transparente é ele próprio alojado por uma instância de uma classe de runtime gerida do tipo RealProxy. Implementa RealProxy uma parte da funcionalidade necessária para encaminhar as operações a partir do proxy transparente. Um objeto proxy herda a semântica associada a objetos geridos, como recolha de lixo, suporte para membros e métodos, e pode ser estendido para formar novas classes. Assim, o proxy tem uma natureza dual; Por um lado, precisa de atuar como um objeto da mesma classe que o objeto remoto (proxy transparente), e por outro, é um objeto gerido em si.

Um objeto proxy pode ser usado sem considerar quaisquer subdivisões remotas dentro de um AppDomain. As aplicações não precisam de distinguir entre referências proxy e referências de objetos. No entanto, os prestadores de serviços que lidam com questões como ativação, gestão de vida e transações precisam de fazer essas distinções.

Aplica-se a

Ver também