Freigeben über


RemotingServices.Unmarshal Methode

Definition

Konvertiert eine angegebene ObjRef in ein Proxyobjekt.

Überlädt

Unmarshal(ObjRef)

Akzeptiert eine ObjRef und erstellt daraus ein Proxyobjekt.

Unmarshal(ObjRef, Boolean)

Übernimmt eine ObjRef und erstellt daraus ein Proxyobjekt, das dem Typ auf dem Server angepasst wird.

Unmarshal(ObjRef)

Akzeptiert eine ObjRef und erstellt daraus ein Proxyobjekt.

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

Parameter

objectRef
ObjRef

Die ObjRef, die das Remoteobjekt darstellt, für das der Proxy gerade erstellt wird.

Gibt zurück

Ein Proxy für das Objekt, das von der angegebenen ObjRef dargestellt wird.

Attribute

Ausnahmen

Die im objectRef-Parameter angegebene ObjRef-Instanz ist nicht wohlgeformt.

Mindestens einer der Aufrufer an höherer Position im Aufrufstapel verfügt nicht über die Berechtigung zum Konfigurieren von Remotetypen und Channels.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Ein Objekt entmarshaliert wird.

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

A ObjRef ist eine serialisierbare Darstellung eines Objekts, mit dem ein Objektverweis über eine Anwendungsdomänengrenze übertragen wird. Das Erstellen eines ObjRef für ein Objekt wird als Marshalling bezeichnet. Kann ObjRef über einen Kanal in eine andere Anwendungsdomäne (möglicherweise auf einem anderen Prozess oder Computer) übertragen werden. Sobald sie sich in der anderen Anwendungsdomäne befinden, muss der ObjRef analysiert werden, um einen Proxy für das Objekt zu erstellen, der in der Regel mit dem realen Objekt verbunden ist. Dieser Vorgang wird als Entmarstierung bezeichnet. Beim Aufheben der Verbindung wird analysiert ObjRef , um die Methodeninformationen des Remoteobjekts zu extrahieren, und sowohl der transparente Proxy als RealProxy auch die Objekte werden erstellt. Der Inhalt des analysierten ObjRef wird dem transparenten Proxy hinzugefügt, bevor der transparente Proxy bei der Common Language Runtime registriert wird.

A ObjRef enthält Informationen, die die Type - und -Klasse des zu marshallenden Objekts, einen URI, der das spezifische Objekt instance eindeutig identifiziert, und Kommunikationsinformationen zum Erreichen der Remotingunterteilung, in der sich das Objekt befindet.

Weitere Informationen

Gilt für:

Unmarshal(ObjRef, Boolean)

Übernimmt eine ObjRef und erstellt daraus ein Proxyobjekt, das dem Typ auf dem Server angepasst wird.

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

Parameter

objectRef
ObjRef

Die ObjRef, die das Remoteobjekt darstellt, für das der Proxy gerade erstellt wird.

fRefine
Boolean

true, um den Proxy dem Typ auf dem Server anzupassen, andernfalls false.

Gibt zurück

Ein Proxy für das Objekt, das von der angegebenen ObjRef dargestellt wird.

Attribute

Ausnahmen

Die im objectRef-Parameter angegebene ObjRef-Instanz ist nicht wohlgeformt.

Mindestens einer der Aufrufer an höherer Position im Aufrufstapel verfügt nicht über die Berechtigung zum Konfigurieren von Remotetypen und Channels.

Hinweise

A ObjRef ist eine serialisierbare Darstellung eines Objekts, mit dem ein Objektverweis über eine Anwendungsdomänengrenze übertragen wird. Das Erstellen eines ObjRef für ein Objekt wird als Marshalling bezeichnet. Kann ObjRef über einen Kanal in eine andere Anwendungsdomäne (möglicherweise auf einem anderen Prozess oder Computer) übertragen werden. Sobald sie sich in der anderen Anwendungsdomäne befinden, muss der ObjRef analysiert werden, um einen Proxy für das Objekt zu erstellen, der in der Regel mit dem realen Objekt verbunden ist. Dieser Vorgang wird als Entmarstierung bezeichnet. Beim Aufheben der Verbindung wird analysiert ObjRef , um die Methodeninformationen des Remoteobjekts zu extrahieren, und sowohl der transparente Proxy als RealProxy auch die Objekte werden erstellt. Der Inhalt des analysierten ObjRef wird dem transparenten Proxy hinzugefügt, bevor der transparente Proxy bei der Common Language Runtime registriert wird.

A ObjRef enthält Informationen, die die Type - und -Klasse des zu marshallenden Objekts, einen URI, der das spezifische Objekt instance eindeutig identifiziert, und Kommunikationsinformationen zum Erreichen der Remotingunterteilung, in der sich das Objekt befindet.

Bei der ersten Erstellung ist der Proxy vom Typ MarshalByRefObject. Während Sie sie in verschiedene Typen umwandeln, verfolgt die Remotinginfrastruktur den am häufigsten verwendeten Typ nach, um das unnötige Laden des Typs zu vermeiden.

Weitere Informationen

Gilt für: