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 dato ObjRef oggetto in un oggetto proxy.
Overload
| Nome | Descrizione |
|---|---|
| Unmarshal(ObjRef) |
Accetta un ObjRef oggetto e ne crea un oggetto proxy. |
| Unmarshal(ObjRef, Boolean) |
Accetta un ObjRef oggetto e ne crea un oggetto proxy, affinandolo sul tipo nel server. |
Unmarshal(ObjRef)
Accetta un ObjRef oggetto e ne crea un oggetto 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
Parametri
- objectRef
- ObjRef
Oggetto ObjRef che rappresenta l'oggetto remoto per il quale viene creato il proxy.
Valori restituiti
Proxy all'oggetto rappresentato dall'oggetto specificato ObjRef .
- Attributi
Eccezioni
L'istanza ObjRefobjectRef specificata nel parametro non è ben formata.
Almeno uno dei chiamanti più in alto nello stack di chiamate non dispone dell'autorizzazione per configurare tipi e canali 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 è una rappresentazione serializzabile di un oggetto usato per trasferire un riferimento a un oggetto attraverso un limite di dominio applicazione. La creazione di un ObjRef oggetto per un oggetto è nota come marshalling. Il ObjRef può essere trasferito tramite un canale in un altro dominio applicazione (possibilmente in un altro processo o computer). Una volta nell'altro dominio applicazione, il ObjRef deve essere analizzato per 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 RealProxy trasparente che gli oggetti. Il contenuto dell'oggetto analizzato ObjRef viene aggiunto al proxy trasparente prima che il proxy trasparente venga registrato con Common Language Runtime.
Un ObjRef contiene informazioni che descrivono l'Type e la classe dell'oggetto sottoposto a marshalling, un URI che identifica in modo univoco l'istanza dell'oggetto specifica 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 un ObjRef oggetto e ne crea un oggetto proxy, affinandolo sul tipo nel 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 viene creato il proxy.
- fRefine
- Boolean
true per perfezionare il proxy al tipo nel server; in caso contrario, false.
Valori restituiti
Proxy all'oggetto rappresentato dall'oggetto specificato ObjRef .
- Attributi
Eccezioni
L'istanza ObjRefobjectRef specificata nel parametro non è ben formata.
Almeno uno dei chiamanti più in alto nello stack di chiamate non dispone dell'autorizzazione per configurare tipi e canali remoti.
Commenti
Un ObjRef è una rappresentazione serializzabile di un oggetto usato per trasferire un riferimento a un oggetto attraverso un limite di dominio applicazione. La creazione di un ObjRef oggetto per un oggetto è nota come marshalling. Il ObjRef può essere trasferito tramite un canale in un altro dominio applicazione (possibilmente in un altro processo o computer). Una volta nell'altro dominio applicazione, il ObjRef deve essere analizzato per 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 RealProxy trasparente che gli oggetti. Il contenuto dell'oggetto analizzato ObjRef viene aggiunto al proxy trasparente prima che il proxy trasparente venga registrato con Common Language Runtime.
Un ObjRef contiene informazioni che descrivono l'Type e la classe dell'oggetto sottoposto a marshalling, un URI che identifica in modo univoco l'istanza dell'oggetto specifica e le informazioni correlate alla comunicazione su come raggiungere la suddivisione remota in cui si trova l'oggetto.
Al momento della creazione, 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.