RemotingServices.Unmarshal Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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
- 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.