Idioma

RemotingServices.Unmarshal Método

Definição

Converte um dado ObjRef em um objeto proxy.

Sobrecargas

Nome Description
Unmarshal(ObjRef)

Tira um ObjRef objeto proxy dele e cria um objeto proxy.

Unmarshal(ObjRef, Boolean)

Usa um ObjRef objeto proxy e cria um objeto proxy com base nele, refinando-o para o tipo no servidor.

Unmarshal(ObjRef)

Tira um ObjRef objeto proxy dele e cria um objeto proxy.

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

objectRef
ObjRef

O ObjRef que representa o objeto remoto para o qual o proxy está sendo criado.

Retornos

Um proxy para o objeto que o determinado ObjRef representa.

Atributos

Exceções

A ObjRef instância especificada no objectRef parâmetro não está bem formada.

Pelo menos um dos chamadores mais altos na caixa de chamadas não tem permissão para configurar tipos e canais de comunicação remota.

Exemplos

O exemplo de código a seguir demonstra como cancelar 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 por um limite de domínio do aplicativo. A criação de um ObjRef 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, a ObjRef análise é analisada para extrair as informações do método do objeto remoto e tanto o proxy transparente quanto RealProxy os objetos 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 o Type e a classe do objeto que está sendo marshalado, 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)

Usa um ObjRef objeto proxy e cria um objeto proxy com base nele, 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

objectRef
ObjRef

O ObjRef que representa o objeto remoto para o qual o proxy está sendo criado.

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 ObjRef instância especificada no objectRef parâmetro não está bem formada.

Pelo menos um dos chamadores mais altos na caixa de chamadas não tem permissão para configurar tipos e canais de comunicação remota.

Comentários

Um ObjRef é uma representação serializável de um objeto usado para transferir uma referência de objeto por um limite de domínio do aplicativo. A criação de um ObjRef 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, a ObjRef análise é analisada para extrair as informações do método do objeto remoto e tanto o proxy transparente quanto RealProxy os objetos 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 o Type e a classe do objeto que está sendo marshalado, 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. À medida que você o converte em diferentes tipos, a infraestrutura de comunicação remota mantém o controle do tipo mais usado para evitar o carregamento do tipo desnecessariamente.

Confira também

Aplica-se a