RemotingServices.Marshal RemotingServices.Marshal RemotingServices.Marshal RemotingServices.Marshal Method

Définition

Convertit le MarshalByRefObject donné en instance de la classe ObjRef, qui peut être sérialisée pour transmission entre domaines d'application et sur un réseau.Converts the given MarshalByRefObject into an instance of the ObjRef class, which can be serialized for transmission between application domains and over a network.

Surcharges

Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject)

Accepte MarshalByRefObject, puis inscrit celui-ci avec l'infrastructure de communication à distance avant de le convertir en instance de la classe ObjRef.Takes a MarshalByRefObject, registers it with the remoting infrastructure, and converts it into an instance of the ObjRef class.

Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String)

Convertit le MarshalByRefObject donné en instance de la classe ObjRef avec l'URI spécifié.Converts the given MarshalByRefObject into an instance of the ObjRef class with the specified URI.

Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type)

Accepte un MarshalByRefObject et convertit celui-ci en instance de la classe ObjRef avec l'URI spécifié, et le Type fourni.Takes a MarshalByRefObject and converts it into an instance of the ObjRef class with the specified URI, and the provided Type.

Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject)

Accepte MarshalByRefObject, puis inscrit celui-ci avec l'infrastructure de communication à distance avant de le convertir en instance de la classe ObjRef.Takes a MarshalByRefObject, registers it with the remoting infrastructure, and converts it into an instance of the ObjRef class.

public:
 static System::Runtime::Remoting::ObjRef ^ Marshal(MarshalByRefObject ^ Obj);
public static System.Runtime.Remoting.ObjRef Marshal (MarshalByRefObject Obj);
static member Marshal : MarshalByRefObject -> System.Runtime.Remoting.ObjRef
Public Shared Function Marshal (Obj As MarshalByRefObject) As ObjRef

Paramètres

Obj
MarshalByRefObject MarshalByRefObject MarshalByRefObject MarshalByRefObject

Objet à convertir.The object to convert.

Retours

Instance de la classe ObjRef représentant l'objet spécifié dans le paramètre Obj.An instance of the ObjRef class that represents the object specified in the Obj parameter.

Exceptions

Le paramètre Obj est un objet proxy.The Obj parameter is an object proxy.

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.At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

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.A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. La création ObjRef d’un pour un objet est appelée marshaling.Creating a ObjRef for an object is known as marshaling. Le ObjRef peut être transféré via un canal dans un autre domaine d’application (éventuellement sur un autre processus ou ordinateur).The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). Une fois dans l’autre domaine d’application ObjRef , doit être analysé pour créer un proxy pour l’objet, généralement connecté à l’objet réel.Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. Cette opération est appelée démarshaling.This operation is known as unmarshaling.

Un ObjRef contient des informations qui décrivent la Type classe et de l’objet qui est marshalé, un URI qui identifie de façon unique l’instance d’objet spécifique et des informations relatives à la communication sur la façon d’atteindre la sous-division de communication à distance. où se trouve l’objet.A ObjRef contains information that describes the Type and class of the object being marshaled, a URI that uniquely identifies the specific object instance, and communication related information about how to reach the remoting subdivision where the object is located.

Pendant le marshaling, le contexte du thread actuel est utilisé, et non le contexte qui était actif au moment de la création de l’objet.During marshaling, the context from the current thread is used, not the context that was active when the object was created. Si un URI n’a pas été explicitement défini SetObjectUriForMarshal par la méthode, il est généré automatiquement par l’infrastructure d’identité de communication à distance.If a URI was not explicitly set by the SetObjectUriForMarshal method, it is automatically generated by the remoting identity infrastructure.

Vous ne pouvez pas associer un URI à un proxy pour l’une des deux raisons suivantes: soit l’URI a été généré côté serveur pour l’objet qu’il représente, soit l’objet est bien connu, auquel cas l’URI est connu.You cannot associate a URI with a proxy for one of two reasons: either the URI was generated at the server side for the object it represents, or the object is well known, in which case the URI is known. Pour cette raison, si le Obj paramètre est un proxy, une exception est levée.For this reason, if the Obj parameter is a proxy, an exception will be thrown. Pour les proxys personnalisés, cette restriction est assouplie car le proxy transparent est traité comme objet serveur.For custom proxies this restriction is relaxed because the transparent proxy is treated as the server object.

Sécurité

SecurityPermission
pour la configuration de l’infrastructure de communication à distance.for configuration of the remoting infrastructure. Valeur de la Demanddemande:; Valeur d’autorisation:RemotingConfigurationDemand value: Demand; Permission value: RemotingConfiguration

Voir aussi

Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String)

Convertit le MarshalByRefObject donné en instance de la classe ObjRef avec l'URI spécifié.Converts the given MarshalByRefObject into an instance of the ObjRef class with the specified URI.

public:
 static System::Runtime::Remoting::ObjRef ^ Marshal(MarshalByRefObject ^ Obj, System::String ^ URI);
public static System.Runtime.Remoting.ObjRef Marshal (MarshalByRefObject Obj, string URI);
static member Marshal : MarshalByRefObject * string -> System.Runtime.Remoting.ObjRef
Public Shared Function Marshal (Obj As MarshalByRefObject, URI As String) As ObjRef

Paramètres

Obj
MarshalByRefObject MarshalByRefObject MarshalByRefObject MarshalByRefObject

Objet à convertir.The object to convert.

URI
String String String String

URI spécifié avec lequel initialiser le nouveau ObjRef.The specified URI with which to initialize the new ObjRef. Peut être null.Can be null.

Retours

Instance de la classe ObjRef représentant l'objet spécifié dans le paramètre Obj.An instance of the ObjRef class that represents the object specified in the Obj parameter.

Exceptions

Obj est un objet proxy et le paramètre URI n'est pas null.Obj is an object proxy, and the URI parameter is not null.

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.At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

Exemples

L’exemple de code suivant montre comment utiliser la méthode Marshal actuelle pour marshaler un objet spécifié.The following code example demonstrates how to use the current Marshal method to marshal a specified object.

TcpChannel^ channel = gcnew TcpChannel( 9000 );
ChannelServices::RegisterChannel( channel );
SampleWellKnown ^ objectWellKnown = gcnew SampleWellKnown;

// After the channel is registered, the Object* needs to be registered
// with the remoting infrastructure.  So, Marshal is called.
ObjRef^ objrefWellKnown = RemotingServices::Marshal( objectWellKnown, "objectWellKnownUri" );
Console::WriteLine( "An instance of SampleWellKnown type is published at {0}.", objrefWellKnown->URI );
Console::WriteLine( "Press enter to unregister SampleWellKnown, so that it is no longer available on this channel." );
Console::ReadLine();
RemotingServices::Disconnect( objectWellKnown );
Console::WriteLine( "Press enter to end the server process." );
Console::ReadLine();
TcpChannel channel = new TcpChannel(9000);
ChannelServices.RegisterChannel(channel);

SampleWellKnown objectWellKnown = new SampleWellKnown();

// After the channel is registered, the object needs to be registered
// with the remoting infrastructure.  So, Marshal is called.
ObjRef objrefWellKnown = RemotingServices.Marshal(objectWellKnown, "objectWellKnownUri");
Console.WriteLine("An instance of SampleWellKnown type is published at {0}.", objrefWellKnown.URI);

Console.WriteLine("Press enter to unregister SampleWellKnown, so that it is no longer available on this channel.");
Console.ReadLine();
RemotingServices.Disconnect(objectWellKnown);

Console.WriteLine("Press enter to end the server process.");
Console.ReadLine();
Dim channel As New TcpChannel(9000)
ChannelServices.RegisterChannel(channel)

Dim objectWellKnown As New SampleWellKnown()
' After the channel is registered, the object needs to be registered
' with the remoting infrastructure.  So, Marshal is called.
Dim objrefWellKnown As ObjRef = RemotingServices.Marshal(objectWellKnown, "objectWellKnownUri")
Console.WriteLine("An instance of SampleWellKnown type is published at {0}.", objrefWellKnown.URI)

Console.WriteLine("Press enter to unregister SampleWellKnown, so that it is no longer available on this channel.")
Console.ReadLine()
RemotingServices.Disconnect(objectWellKnown)
Console.WriteLine("Press enter to end the server process.")
Console.ReadLine()

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.A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. La création ObjRef d’un pour un objet est appelée marshaling.Creating a ObjRef for an object is known as marshaling. Le ObjRef peut être transféré via un canal dans un autre domaine d’application (éventuellement sur un autre processus ou ordinateur).The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). Une fois dans l’autre domaine d’application ObjRef , doit être analysé pour créer un proxy pour l’objet, généralement connecté à l’objet réel.Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. Cette opération est appelée démarshaling.This operation is known as unmarshaling.

Un ObjRef contient des informations qui décrivent la Type classe et de l’objet qui est marshalé, un URI qui identifie de façon unique l’instance d’objet spécifique et des informations relatives à la communication sur la façon d’atteindre la sous-division de communication à distance. où se trouve l’objet.A ObjRef contains information that describes the Type and class of the object being marshaled, a URI that uniquely identifies the specific object instance, and communication related information about how to reach the remoting subdivision where the object is located.

Pendant le marshaling, le contexte du thread actuel est utilisé, et non le contexte qui était actif au moment de la création de l’objet.During marshaling, the context from the current thread is used, not the context that was active when the object was created.

Vous ne pouvez pas associer un URI à un proxy pour l’une des deux raisons suivantes: soit l’URI a été généré côté serveur pour l’objet qu’il représente, soit l’objet est bien connu, auquel cas l’URI est connu.You cannot associate a URI with a proxy for one of two reasons: either the URI was generated at the server side for the object it represents, or the object is well known, in which case the URI is known. Pour cette raison, si le Obj paramètre est un proxy, une exception est levée.For this reason, if the Obj parameter is a proxy, an exception will be thrown. Pour les proxys personnalisés, cette restriction est assouplie car le proxy transparent est traité comme objet serveur.For custom proxies this restriction is relaxed because the transparent proxy is treated as the server object.

Sécurité

SecurityPermission
pour la configuration de l’infrastructure de communication à distance.for configuration of the remoting infrastructure. Valeur de la Demanddemande:; Valeur d’autorisation:RemotingConfigurationDemand value: Demand; Permission value: RemotingConfiguration

Voir aussi

Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type)

Accepte un MarshalByRefObject et convertit celui-ci en instance de la classe ObjRef avec l'URI spécifié, et le Type fourni.Takes a MarshalByRefObject and converts it into an instance of the ObjRef class with the specified URI, and the provided Type.

public:
 static System::Runtime::Remoting::ObjRef ^ Marshal(MarshalByRefObject ^ Obj, System::String ^ ObjURI, Type ^ RequestedType);
public static System.Runtime.Remoting.ObjRef Marshal (MarshalByRefObject Obj, string ObjURI, Type RequestedType);
static member Marshal : MarshalByRefObject * string * Type -> System.Runtime.Remoting.ObjRef
Public Shared Function Marshal (Obj As MarshalByRefObject, ObjURI As String, RequestedType As Type) As ObjRef

Paramètres

Obj
MarshalByRefObject MarshalByRefObject MarshalByRefObject MarshalByRefObject

Objet à convertir en ObjRef.The object to convert into a ObjRef.

ObjURI
String String String String

URI avec lequel l'objet spécifié dans le paramètre Obj est marshalé.The URI the object specified in the Obj parameter is marshaled with. Peut être null.Can be null.

RequestedType
Type Type Type Type

TypeObj sous lequel il est marshalé.The TypeObj is marshaled as. Peut être null.Can be null.

Retours

Instance de la classe ObjRef représentant l'objet spécifié dans le paramètre Obj.An instance of the ObjRef class that represents the object specified in the Obj parameter.

Exceptions

Obj est un proxy d'un objet distant, et le paramètre ObjUri n'est pas null.Obj is a proxy of a remote object, and the ObjUri parameter is not null.

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.At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

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.A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. La création ObjRef d’un pour un objet est appelée marshaling.Creating a ObjRef for an object is known as marshaling. Le ObjRef peut être transféré via un canal dans un autre domaine d’application (éventuellement sur un autre processus ou ordinateur).The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). Une fois dans l’autre domaine d’application ObjRef , doit être analysé pour créer un proxy pour l’objet, généralement connecté à l’objet réel.Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. Cette opération est appelée démarshaling.This operation is known as unmarshaling.

Un ObjRef contient des informations qui décrivent la Type classe et de l’objet qui est marshalé, un URI qui identifie de façon unique l’instance d’objet spécifique et des informations relatives à la communication sur la façon d’atteindre la sous-division de communication à distance. où se trouve l’objet.A ObjRef contains information that describes the Type and class of the object being marshaled, a URI that uniquely identifies the specific object instance, and communication related information about how to reach the remoting subdivision where the object is located.

Le spécifié Type est utilisé par l’infrastructure de communication à distance pour limiter l’étendue de la hiérarchie des types exposés.The specified Type is used by the remoting infrastructure to limit the scope of the exposed type hierarchy. Par exemple, si l’objet A dérive de l’objet B, qui dérive de l’objet Marshal c, et est appelé, le client peut effectuer un cast du proxy entre C et B, mais pas vers un.For example, if object A derives from object B, which derives from object C, and Marshal is called, then the client can cast the proxy between C and B but not to A.

Pendant le marshaling, le contexte du thread actuel est utilisé, et non le contexte qui était actif au moment de la création de l’objet.During marshaling, the context from the current thread is used, not the context that was active when the object was created.

Vous ne pouvez pas associer un URI à un proxy pour l’une des deux raisons suivantes: soit l’URI a été généré côté serveur pour l’objet qu’il représente, soit l’objet est bien connu, auquel cas l’URI est connu.You cannot associate a URI with a proxy for one of two reasons: either the URI was generated at the server side for the object it represents, or the object is well known, in which case the URI is known. Pour cette raison, si le Obj paramètre est un proxy, une exception est levée.For this reason, if the Obj parameter is a proxy, an exception will be thrown. Pour les proxys personnalisés, cette restriction est assouplie car le proxy transparent est traité comme objet serveur.For custom proxies this restriction is relaxed because the transparent proxy is treated as the server object.

Sécurité

SecurityPermission
pour la configuration de l’infrastructure de communication à distance.for configuration of the remoting infrastructure. Valeur de la Demanddemande:; Valeur d’autorisation:RemotingConfigurationDemand value: Demand; Permission value: RemotingConfiguration

Voir aussi

S’applique à