RemotingServices.Unmarshal Methode

Definition

Wandelt einen angegebenen ObjRef In ein Proxyobjekt um.

Überlädt

Name Beschreibung
Unmarshal(ObjRef)

Übernimmt ein ObjRef Proxyobjekt und erstellt daraus ein Proxyobjekt.

Unmarshal(ObjRef, Boolean)

Verwendet ein ObjRef Proxyobjekt und erstellt es aus dem Objekt, wobei es auf den Typ auf dem Server optimiert wird.

Unmarshal(ObjRef)

Übernimmt ein ObjRef Proxyobjekt 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

Dies ObjRef stellt das Remoteobjekt dar, für das der Proxy erstellt wird.

Gibt zurück

Ein Proxy für das Objekt, das das angegebene ObjRef Objekt darstellt.

Attribute

Ausnahmen

Die ObjRef im objectRef Parameter angegebene Instanz ist nicht wohlgeformt.

Mindestens einer der Anrufer im Callstack verfügt nicht über die Berechtigung zum Konfigurieren von Remotingtypen und Kanälen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Objekt entmarsiert 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

Ein ObjRef ist eine serialisierbare Darstellung eines Objekts, das zum Übertragen eines Objektverweises über eine Anwendungsdomänengrenze hinweg verwendet wird. Das Erstellen eines ObjRef Objekts für ein Objekt wird als Marshalling bezeichnet. Die ObjRef können ü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 die ObjRef analysiert werden, um einen Proxy für das Objekt zu erstellen, der im Allgemeinen mit dem realen Objekt verbunden ist. Dieser Vorgang wird als Unmarshaling bezeichnet. Während des Entmarshalings wird die ObjRef Methode analysiert, um die Methodeninformationen des Remoteobjekts zu extrahieren, und sowohl der transparente Proxy als RealProxy auch die Objekte werden erstellt. Der Inhalt der analysierten Daten wird dem transparenten ObjRef Proxy hinzugefügt, bevor der transparente Proxy bei der Common Language Runtime registriert wird.

Eine ObjRef enthält Informationen, die die Type und Klasse des Objekts beschreiben, das gemarstet wird, einen URI, der die spezifische Objektinstanz eindeutig identifiziert, und Kommunikationsinformationen darüber, wie sie die Remotingunterteilung erreichen, in der sich das Objekt befindet.

Weitere Informationen

Gilt für:

Unmarshal(ObjRef, Boolean)

Verwendet ein ObjRef Proxyobjekt und erstellt es aus dem Objekt, wobei es auf den Typ auf dem Server optimiert 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

Dies ObjRef stellt das Remoteobjekt dar, für das der Proxy erstellt wird.

fRefine
Boolean

trueden Proxy auf den Servertyp zu verfeinern; andernfalls . false

Gibt zurück

Ein Proxy für das Objekt, das das angegebene ObjRef Objekt darstellt.

Attribute

Ausnahmen

Die ObjRef im objectRef Parameter angegebene Instanz ist nicht wohlgeformt.

Mindestens einer der Anrufer im Callstack verfügt nicht über die Berechtigung zum Konfigurieren von Remotingtypen und Kanälen.

Hinweise

Ein ObjRef ist eine serialisierbare Darstellung eines Objekts, das zum Übertragen eines Objektverweises über eine Anwendungsdomänengrenze hinweg verwendet wird. Das Erstellen eines ObjRef Objekts für ein Objekt wird als Marshalling bezeichnet. Die ObjRef können ü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 die ObjRef analysiert werden, um einen Proxy für das Objekt zu erstellen, der im Allgemeinen mit dem realen Objekt verbunden ist. Dieser Vorgang wird als Unmarshaling bezeichnet. Während des Entmarshalings wird die ObjRef Methode analysiert, um die Methodeninformationen des Remoteobjekts zu extrahieren, und sowohl der transparente Proxy als RealProxy auch die Objekte werden erstellt. Der Inhalt der analysierten Daten wird dem transparenten ObjRef Proxy hinzugefügt, bevor der transparente Proxy bei der Common Language Runtime registriert wird.

Eine ObjRef enthält Informationen, die die Type und Klasse des Objekts beschreiben, das gemarstet wird, einen URI, der die spezifische Objektinstanz eindeutig identifiziert, und Kommunikationsinformationen darüber, wie sie die Remotingunterteilung erreichen, in der sich das Objekt befindet.

Beim ersten Erstellen ist der Proxy vom Typ MarshalByRefObject. Während Sie es in verschiedene Typen umwandeln, verfolgt die Remotinginfrastruktur den am häufigsten verwendeten Typ, um unnötiges Laden des Typs zu vermeiden.

Weitere Informationen

Gilt für: