RemotingServices.IsTransparentProxy(Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.