Partage via


RemotingServices.Unmarshal Méthode

Définition

Convertit un ObjRef donné en objet proxy.

Surcharges

Unmarshal(ObjRef)

Accepte ObjRef, dont il crée un objet proxy.

Unmarshal(ObjRef, Boolean)

Accepte ObjRef, dont il crée un proxy, en le restreignant au type sur le serveur.

Unmarshal(ObjRef)

Accepte ObjRef, dont il crée un objet 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

Paramètres

objectRef
ObjRef

ObjRef qui représente l'objet distant pour lequel un proxy est créé.

Retours

Proxy pour l'objet représenté par le ObjRef donné.

Attributs

Exceptions

L'instance de ObjRef spécifiée dans le paramètre objectRef n'est pas correctement formée.

Au moins un des appelants à un niveau plus élevé dans la pile des appels n'a pas l'autorisation de configuration des types et des canaux de communication à distance.

Exemples

L’exemple de code suivant montre comment démarshaler un objet.

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

Remarques

Un ObjRef est une représentation sérialisable d’un objet utilisé pour transférer une référence d’objet à travers une limite de domaine d’application. La création d’un ObjRef pour un objet est appelée marshaling. Le ObjRef peut être transféré via un canal vers un autre domaine d’application (éventuellement sur un autre processus ou ordinateur). Une fois dans l’autre domaine d’application, le ObjRef doit être analysé pour créer un proxy pour l’objet, généralement connecté à l’objet réel. Cette opération est appelée démarshalation. Pendant le démarshalation, le ObjRef est analysé pour extraire les informations de méthode de l’objet distant, et le proxy transparent et RealProxy les objets sont créés. Le contenu de l’objet analysé ObjRef est ajouté au proxy transparent avant que le proxy transparent ne soit inscrit auprès du Common Language Runtime.

Un ObjRef contient des informations qui décrivent la Type classe et de l’objet marshalé, un URI qui identifie de manière unique l’objet spécifique instance et des informations relatives à la communication sur la façon d’atteindre la sous-section de communication à distance où se trouve l’objet.

Voir aussi

S’applique à

Unmarshal(ObjRef, Boolean)

Accepte ObjRef, dont il crée un proxy, en le restreignant au type sur le serveur.

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

Paramètres

objectRef
ObjRef

ObjRef qui représente l'objet distant pour lequel un proxy est créé.

fRefine
Boolean

true pour restreindre le proxy au type sur le serveur ; sinon false.

Retours

Proxy pour l'objet représenté par le ObjRef donné.

Attributs

Exceptions

L'instance de ObjRef spécifiée dans le paramètre objectRef n'est pas correctement formée.

Au moins un des appelants à un niveau plus élevé dans la pile des appels n'a pas l'autorisation de configuration des types et des canaux de communication à distance.

Remarques

Un ObjRef est une représentation sérialisable d’un objet utilisé pour transférer une référence d’objet à travers une limite de domaine d’application. La création d’un ObjRef pour un objet est appelée marshaling. Le ObjRef peut être transféré via un canal vers un autre domaine d’application (éventuellement sur un autre processus ou ordinateur). Une fois dans l’autre domaine d’application, le ObjRef doit être analysé pour créer un proxy pour l’objet, généralement connecté à l’objet réel. Cette opération est appelée démarshalation. Pendant le démarshalation, le ObjRef est analysé pour extraire les informations de méthode de l’objet distant, et le proxy transparent et RealProxy les objets sont créés. Le contenu de l’objet analysé ObjRef est ajouté au proxy transparent avant que le proxy transparent ne soit inscrit auprès du Common Language Runtime.

Un ObjRef contient des informations qui décrivent la Type classe et de l’objet marshalé, un URI qui identifie de manière unique l’objet spécifique instance et des informations relatives à la communication sur la façon d’atteindre la sous-section de communication à distance où se trouve l’objet.

Lors de sa création, le proxy est de type MarshalByRefObject. Lorsque vous le castez en différents types, l’infrastructure de communication à distance effectue le suivi du type le plus utilisé pour éviter de charger inutilement le type.

Voir aussi

S’applique à