RemotingServices.Unmarshal Methode

Definition

Konvertiert eine angegebene ObjRef in ein Proxyobjekt.Converts a given ObjRef into a proxy object.

Überlädt

Unmarshal(ObjRef)

Akzeptiert eine ObjRef und erstellt daraus ein Proxyobjekt.Takes a ObjRef and creates a proxy object out of it.

Unmarshal(ObjRef, Boolean)

Übernimmt eine ObjRef und erstellt daraus ein Proxyobjekt, das dem Typ auf dem Server angepasst wird.Takes a ObjRef and creates a proxy object out of it, refining it to the type on the server.

Unmarshal(ObjRef)

Akzeptiert eine ObjRef und erstellt daraus ein Proxyobjekt.Takes a ObjRef and creates a proxy object out of it.

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
Public Shared Function Unmarshal (objectRef As ObjRef) As Object

Parameter

objectRef
ObjRef

Die ObjRef, die das Remoteobjekt darstellt, für das der Proxy gerade erstellt wird.The ObjRef that represents the remote object for which the proxy is being created.

Gibt zurück

Ein Proxy für das Objekt, das von der angegebenen ObjRef dargestellt wird.A proxy to the object that the given ObjRef represents.

Attribute

Ausnahmen

Die im objectRef-Parameter angegebene ObjRef-Instanz ist nicht wohlgeformt.The ObjRef instance specified in the objectRef parameter is not well-formed.

Mindestens einer der Aufrufer an höherer Position im Aufrufstapel verfügt nicht über die Berechtigung zum Konfigurieren von Remotetypen und Channels.At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

Beispiele

Im folgenden Codebeispiel wird das Marshalling eines Objekts veranschaulicht.The following code example demonstrates how to unmarshal an object.

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

Hinweise

Bei einem ObjRef handelt es sich um eine serialisierbare Darstellung eines Objekts, mit dem ein Objekt Verweis über eine Anwendungs Domänen Grenze übertragen wird.A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. Das Erstellen einer ObjRef für ein Objekt wird als Marshalling bezeichnet.Creating a ObjRef for an object is known as marshaling. Die ObjRef kann über einen Kanal in eine andere Anwendungsdomäne (möglicherweise auf einem anderen Prozess oder auf einem anderen Computer) übertragen werden.The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). In der anderen Anwendungsdomäne muss die ObjRef analysiert werden, um einen Proxy für das Objekt zu erstellen, das in der Regel mit dem echten Objekt verbunden ist.Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. Dieser Vorgang wird als "Unmarshalling" bezeichnet.This operation is known as unmarshaling. Beim Marshalling werden die ObjRef analysiert, um die Methoden Informationen des Remote Objekts zu extrahieren, und sowohl der transparente Proxy als auch RealProxy Objekte werden erstellt.During unmarshaling, the ObjRef is parsed to extract the method information of the remote object and both the transparent proxy and RealProxy objects are created. Der Inhalt der analysierten ObjRef wird dem transparenten Proxy hinzugefügt, bevor der transparente Proxy beim Common Language Runtime registriert wird.The content of the parsed ObjRef is added to the transparent proxy before the transparent proxy is registered with the common language runtime.

Eine ObjRef enthält Informationen, die die Type und die Klasse des gemarshallten Objekts beschreiben, einen URI, der die jeweilige Objektinstanz eindeutig identifiziert, und kommunikationsbezogene Informationen darüber, wie die Remoting-Unterteilung erreicht wird, in der sich das Objekt befindet.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.

Siehe auch

Unmarshal(ObjRef, Boolean)

Übernimmt eine ObjRef und erstellt daraus ein Proxyobjekt, das dem Typ auf dem Server angepasst wird.Takes a ObjRef and creates a proxy object out of it, refining it to the type on the 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
Public Shared Function Unmarshal (objectRef As ObjRef, fRefine As Boolean) As Object

Parameter

objectRef
ObjRef

Die ObjRef, die das Remoteobjekt darstellt, für das der Proxy gerade erstellt wird.The ObjRef that represents the remote object for which the proxy is being created.

fRefine
Boolean

true, um den Proxy dem Typ auf dem Server anzupassen, andernfalls false.true to refine the proxy to the type on the server; otherwise, false.

Gibt zurück

Ein Proxy für das Objekt, das von der angegebenen ObjRef dargestellt wird.A proxy to the object that the given ObjRef represents.

Attribute

Ausnahmen

Die im objectRef-Parameter angegebene ObjRef-Instanz ist nicht wohlgeformt.The ObjRef instance specified in the objectRef parameter is not well-formed.

Mindestens einer der Aufrufer an höherer Position im Aufrufstapel verfügt nicht über die Berechtigung zum Konfigurieren von Remotetypen und Channels.At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

Hinweise

Bei einem ObjRef handelt es sich um eine serialisierbare Darstellung eines Objekts, mit dem ein Objekt Verweis über eine Anwendungs Domänen Grenze übertragen wird.A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. Das Erstellen einer ObjRef für ein Objekt wird als Marshalling bezeichnet.Creating a ObjRef for an object is known as marshaling. Die ObjRef kann über einen Kanal in eine andere Anwendungsdomäne (möglicherweise auf einem anderen Prozess oder auf einem anderen Computer) übertragen werden.The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). In der anderen Anwendungsdomäne muss die ObjRef analysiert werden, um einen Proxy für das Objekt zu erstellen, das in der Regel mit dem echten Objekt verbunden ist.Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. Dieser Vorgang wird als "Unmarshalling" bezeichnet.This operation is known as unmarshaling. Beim Marshalling werden die ObjRef analysiert, um die Methoden Informationen des Remote Objekts zu extrahieren, und sowohl der transparente Proxy als auch RealProxy Objekte werden erstellt.During unmarshaling, the ObjRef is parsed to extract the method information of the remote object and both the transparent proxy and RealProxy objects are created. Der Inhalt der analysierten ObjRef wird dem transparenten Proxy hinzugefügt, bevor der transparente Proxy beim Common Language Runtime registriert wird.The content of the parsed ObjRef is added to the transparent proxy before the transparent proxy is registered with the common language runtime.

Eine ObjRef enthält Informationen, die die Type und die Klasse des gemarshallten Objekts beschreiben, einen URI, der die jeweilige Objektinstanz eindeutig identifiziert, und kommunikationsbezogene Informationen darüber, wie die Remoting-Unterteilung erreicht wird, in der sich das Objekt befindet.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.

Bei der ersten Erstellung ist der Proxy vom Typ MarshalByRefObject.When first created, the proxy is of type MarshalByRefObject. Wenn Sie es in verschiedene Typen umwandeln, verfolgt die Remoting-Infrastruktur den am häufigsten verwendeten Typ, um zu vermeiden, dass der Typ unnötig geladen wird.As you cast it into different types, the remoting infrastructure keeps track of the most used type to avoid loading the type unnecessarily.

Siehe auch

Gilt für: