RemotingServices.Unmarshal Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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
- 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.