Condividi tramite


RemotingServices.Unmarshal Metodo

Definizione

Converte un oggetto ObjRef specificato in un oggetto proxy.

Overload

Unmarshal(ObjRef)

Accetta una classe ObjRef e con questa crea un oggetto proxy esterno.

Unmarshal(ObjRef, Boolean)

Accetta una classe ObjRef e con questa crea un oggetto proxy esterno, adattandolo al tipo sul server.

Unmarshal(ObjRef)

Accetta una classe ObjRef e con questa crea un oggetto proxy esterno.

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

Parametri

objectRef
ObjRef

Oggetto ObjRef che rappresenta l'oggetto remoto per il quale creare il proxy.

Restituisce

Proxy dell'oggetto rappresentato dall'oggetto ObjRef specificato.

Attributi

Eccezioni

Il formato dell'istanza della classe ObjRef specificato nel parametro objectRef non è corretto.

Almeno uno dei chiamanti in posizione più elevata nello stack di chiamate non dispone delle autorizzazioni alla configurazione di canali e tipi remoti.

Esempio

Nell'esempio di codice seguente viene illustrato come annullare ilmarshal di un oggetto .

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.")

Commenti

Un ObjRef oggetto è una rappresentazione serializzabile di un oggetto utilizzato per trasferire un riferimento a un oggetto attraverso un limite di dominio applicazione. La creazione di un ObjRef per un oggetto è nota come marshalling. Può ObjRef essere trasferito tramite un canale in un altro dominio applicazione (possibilmente in un altro processo o computer). Una volta nell'altro dominio applicazione, è necessario analizzare per ObjRef creare un proxy per l'oggetto, in genere connesso all'oggetto reale. Questa operazione è nota come unmarshaling. Durante l'annullamento delmarshaling, viene ObjRef analizzato per estrarre le informazioni sul metodo dell'oggetto remoto e vengono creati sia il proxy trasparente che RealProxy gli oggetti. Il contenuto dell'oggetto analizzato ObjRef viene aggiunto al proxy trasparente prima che il proxy trasparente venga registrato con Common Language Runtime.

Contiene ObjRef informazioni che descrivono la Type classe e dell'oggetto sottoposto a marshalling, un URI che identifica in modo univoco l'istanza dell'oggetto specifico e le informazioni correlate alla comunicazione su come raggiungere la suddivisione remota in cui si trova l'oggetto.

Vedi anche

Si applica a

Unmarshal(ObjRef, Boolean)

Accetta una classe ObjRef e con questa crea un oggetto proxy esterno, adattandolo al tipo sul server.

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

Parametri

objectRef
ObjRef

Oggetto ObjRef che rappresenta l'oggetto remoto per il quale creare il proxy.

fRefine
Boolean

true per adattare il proxy al tipo sul server; in caso contrario, false.

Restituisce

Proxy dell'oggetto rappresentato dall'oggetto ObjRef specificato.

Attributi

Eccezioni

Il formato dell'istanza della classe ObjRef specificato nel parametro objectRef non è corretto.

Almeno uno dei chiamanti in posizione più elevata nello stack di chiamate non dispone delle autorizzazioni alla configurazione di canali e tipi remoti.

Commenti

Un ObjRef oggetto è una rappresentazione serializzabile di un oggetto utilizzato per trasferire un riferimento a un oggetto attraverso un limite di dominio applicazione. La creazione di un ObjRef per un oggetto è nota come marshalling. Può ObjRef essere trasferito tramite un canale in un altro dominio applicazione (possibilmente in un altro processo o computer). Una volta nell'altro dominio applicazione, è necessario analizzare per ObjRef creare un proxy per l'oggetto, in genere connesso all'oggetto reale. Questa operazione è nota come unmarshaling. Durante l'annullamento delmarshaling, viene ObjRef analizzato per estrarre le informazioni sul metodo dell'oggetto remoto e vengono creati sia il proxy trasparente che RealProxy gli oggetti. Il contenuto dell'oggetto analizzato ObjRef viene aggiunto al proxy trasparente prima che il proxy trasparente venga registrato con Common Language Runtime.

Contiene ObjRef informazioni che descrivono la Type classe e dell'oggetto sottoposto a marshalling, un URI che identifica in modo univoco l'istanza dell'oggetto specifico e le informazioni correlate alla comunicazione su come raggiungere la suddivisione remota in cui si trova l'oggetto.

Quando viene creato per la prima volta, il proxy è di tipo MarshalByRefObject. Durante il cast in tipi diversi, l'infrastruttura remota tiene traccia del tipo più usato per evitare di caricare il tipo inutilmente.

Vedi anche

Si applica a