RemotingServices.Unmarshal Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Converte um determinado ObjRef em um objeto de proxy.
Sobrecargas
Unmarshal(ObjRef) |
Utiliza um ObjRef e cria um objeto proxy dele. |
Unmarshal(ObjRef, Boolean) |
Utiliza um ObjRef e cria um objeto proxy dele, refinando-o para o tipo no servidor. |
Unmarshal(ObjRef)
Utiliza um ObjRef e cria um objeto proxy dele.
public:
static System::Object ^ Unmarshal(System::Runtime::Remoting::ObjRef ^ objectRef);
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef);
[System.Security.SecurityCritical]
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef);
static member Unmarshal : System.Runtime.Remoting.ObjRef -> obj
[<System.Security.SecurityCritical>]
static member Unmarshal : System.Runtime.Remoting.ObjRef -> obj
Public Shared Function Unmarshal (objectRef As ObjRef) As Object
Parâmetros
Retornos
Um proxy para o objeto que o determinado ObjRef representa.
- Atributos
Exceções
A instância ObjRef especificada no parâmetro objectRef
não é bem formada.
Pelo menos um dos chamadores no topo da pilha de chamadas não tem permissão para configurar canais e tipos de comunicação remota.
Exemplos
O exemplo de código a seguir demonstra como remover omarsal de um objeto .
ChannelServices::RegisterChannel( gcnew HttpChannel );
SampleService ^ objectSample = (SampleService^)( Activator::GetObject( SampleService::typeid,
"http://localhost:9000/MySampleService/SampleService.soap" ) );
// The GetManuallyMarshaledObject() method uses RemotingServices::Marshal()
// to create an ObjRef object for a SampleTwo object.
ObjRef^ objRefSampleTwo = objectSample->GetManuallyMarshaledObject();
SampleTwo ^ objectSampleTwo = (SampleTwo^)( RemotingServices::Unmarshal( objRefSampleTwo ) );
objectSampleTwo->PrintMessage( "ObjRef successfuly unmarshaled." );
ChannelServices.RegisterChannel(new HttpChannel());
SampleService objectSample = (SampleService)Activator.GetObject(typeof(SampleService),
"http://localhost:9000/MySampleService/SampleService.soap");
// The GetManuallyMarshaledObject() method uses RemotingServices.Marshal()
// to create an ObjRef object for a SampleTwo object.
ObjRef objRefSampleTwo = objectSample.GetManuallyMarshaledObject();
SampleTwo objectSampleTwo = (SampleTwo)RemotingServices.Unmarshal(objRefSampleTwo);
objectSampleTwo.PrintMessage("ObjRef successfuly unmarshaled.");
ChannelServices.RegisterChannel(New HttpChannel())
Dim objectSample As SampleService = CType(Activator.GetObject(GetType(SampleService), _
"http://localhost:9000/MySampleService/SampleService.soap"), SampleService)
' The GetManuallyMarshaledObject() method uses RemotingServices.Marshal()
' to create an ObjRef object for a SampleTwo object.
Dim objRefSampleTwo As ObjRef = objectSample.GetManuallyMarshaledObject()
Dim objectSampleTwo As SampleTwo = CType(RemotingServices.Unmarshal(objRefSampleTwo), SampleTwo)
objectSampleTwo.PrintMessage("I successfully unmarshaled your ObjRef. Thanks.")
Comentários
Um ObjRef é uma representação serializável de um objeto usado para transferir uma referência de objeto entre um limite de domínio do aplicativo. A criação de um ObjRef para um objeto é conhecida como marshaling. O ObjRef pode ser transferido por meio de um canal para outro domínio de aplicativo (possivelmente em outro processo ou computador). Uma vez no outro domínio do aplicativo, o ObjRef deve ser analisado para criar um proxy para o objeto, geralmente conectado ao objeto real. Essa operação é conhecida como unmarshaling. Durante a unmarshaling, o ObjRef é analisado para extrair as informações de método do objeto remoto e os objetos e RealProxy proxy transparentes são criados. O conteúdo do analisado ObjRef é adicionado ao proxy transparente antes que o proxy transparente seja registrado com o Common Language Runtime.
Um ObjRef contém informações que descrevem a Type classe e do objeto que está sendo realizado em marshaling, um URI que identifica exclusivamente a instância de objeto específica e informações relacionadas à comunicação sobre como alcançar a subdivisão de comunicação remota onde o objeto está localizado.
Confira também
Aplica-se a
Unmarshal(ObjRef, Boolean)
Utiliza um ObjRef e cria um objeto proxy dele, refinando-o para o tipo no servidor.
public:
static System::Object ^ Unmarshal(System::Runtime::Remoting::ObjRef ^ objectRef, bool fRefine);
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef, bool fRefine);
[System.Security.SecurityCritical]
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef, bool fRefine);
static member Unmarshal : System.Runtime.Remoting.ObjRef * bool -> obj
[<System.Security.SecurityCritical>]
static member Unmarshal : System.Runtime.Remoting.ObjRef * bool -> obj
Public Shared Function Unmarshal (objectRef As ObjRef, fRefine As Boolean) As Object
Parâmetros
- fRefine
- Boolean
true
para refinar o proxy para o tipo no servidor, caso contrário, false
.
Retornos
Um proxy para o objeto que o determinado ObjRef representa.
- Atributos
Exceções
A instância ObjRef especificada no parâmetro objectRef
não é bem formada.
Pelo menos um dos chamadores no topo da pilha de chamadas não tem permissão para configurar canais e tipos de comunicação remota.
Comentários
Um ObjRef é uma representação serializável de um objeto usado para transferir uma referência de objeto entre um limite de domínio do aplicativo. A criação de um ObjRef para um objeto é conhecida como marshaling. O ObjRef pode ser transferido por meio de um canal para outro domínio de aplicativo (possivelmente em outro processo ou computador). Uma vez no outro domínio do aplicativo, o ObjRef deve ser analisado para criar um proxy para o objeto, geralmente conectado ao objeto real. Essa operação é conhecida como unmarshaling. Durante a unmarshaling, o ObjRef é analisado para extrair as informações de método do objeto remoto e os objetos e RealProxy proxy transparentes são criados. O conteúdo do analisado ObjRef é adicionado ao proxy transparente antes que o proxy transparente seja registrado com o Common Language Runtime.
Um ObjRef contém informações que descrevem a Type classe e do objeto que está sendo realizado em marshaling, um URI que identifica exclusivamente a instância de objeto específica e informações relacionadas à comunicação sobre como alcançar a subdivisão de comunicação remota onde o objeto está localizado.
Quando criado pela primeira vez, o proxy é do tipo MarshalByRefObject. Conforme você o converte em diferentes tipos, a infraestrutura de comunicação remota controla o tipo mais usado para evitar carregar o tipo desnecessariamente.