RemotingServices.Unmarshal Metoda

Definice

Převede daný ObjRef objekt na objekt proxy.

Přetížení

Unmarshal(ObjRef)

ObjRef Vezme objekt proxy a vytvoří z něj objekt proxy.

Unmarshal(ObjRef, Boolean)

ObjRef Vezme objekt proxy a vytvoří z něj objekt proxy a upřesní ho na typ na serveru.

Unmarshal(ObjRef)

ObjRef Vezme objekt proxy a vytvoří z něj objekt 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

Parametry

objectRef
ObjRef

Představuje ObjRef vzdálený objekt, pro který se proxy server vytváří.

Návraty

Proxy pro objekt, který daný ObjRef představuje.

Atributy

Výjimky

Instance ObjRef zadaná v parametru objectRef není ve správném formátu.

Alespoň jeden z volajících, kteří jsou výše v nástroji calltack, nemá oprávnění ke konfiguraci typů a kanálů vzdálené komunikace.

Příklady

Následující příklad kódu ukazuje, jak zrušit ohraničení objektu.

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

Poznámky

A ObjRef je serializovatelná reprezentace objektu použitého k přenosu odkazu na objekt přes hranice domény aplikace. Vytvoření objektu ObjRef se označuje jako zařazování. Je ObjRef možné ho přenést prostřednictvím kanálu do jiné domény aplikace (případně do jiného procesu nebo počítače). Jakmile je v jiné doméně aplikace, ObjRef musí se analyzovat, aby se vytvořil proxy pro objekt, který je obecně připojený k reálnému objektu. Tato operace se označuje jako unmarshaling. Během rozbalování ObjRef se parsuje, aby se extrahovali informace o metodě vzdáleného objektu a vytvoří se transparentní proxy i RealProxy objekty. Obsah analyzovaného ObjRef se přidá do transparentního proxy serveru před tím, než se transparentní proxy server zaregistruje v modulu CLR (Common Language Runtime).

A ObjRef obsahuje informace, které popisují Type a třídy zařazovaného objektu, identifikátor URI, který jednoznačně identifikuje konkrétní instanci objektu, a informace související s komunikací o tom, jak se dostat k vzdálenému dílčímu dělení, kde je objekt umístěn.

Viz také

Platí pro

Unmarshal(ObjRef, Boolean)

ObjRef Vezme objekt proxy a vytvoří z něj objekt proxy a upřesní ho na typ na serveru.

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

Parametry

objectRef
ObjRef

Představuje ObjRef vzdálený objekt, pro který se proxy server vytváří.

fRefine
Boolean

trueupřesnit proxy na typ na serveru; v opačném případě . false

Návraty

Proxy pro objekt, který daný ObjRef představuje.

Atributy

Výjimky

Instance ObjRef zadaná v parametru objectRef není ve správném formátu.

Alespoň jeden z volajících, kteří jsou výše v nástroji calltack, nemá oprávnění ke konfiguraci typů a kanálů vzdálené komunikace.

Poznámky

A ObjRef je serializovatelná reprezentace objektu použitého k přenosu odkazu na objekt přes hranice domény aplikace. Vytvoření objektu ObjRef se označuje jako zařazování. Je ObjRef možné ho přenést prostřednictvím kanálu do jiné domény aplikace (případně do jiného procesu nebo počítače). Jakmile je v jiné doméně aplikace, ObjRef musí se analyzovat, aby se vytvořil proxy pro objekt, který je obecně připojený k reálnému objektu. Tato operace se označuje jako unmarshaling. Během rozbalování ObjRef se parsuje, aby se extrahovali informace o metodě vzdáleného objektu a vytvoří se transparentní proxy i RealProxy objekty. Obsah analyzovaného ObjRef se přidá do transparentního proxy serveru před tím, než se transparentní proxy server zaregistruje v modulu CLR (Common Language Runtime).

A ObjRef obsahuje informace, které popisují Type a třídy zařazovaného objektu, identifikátor URI, který jednoznačně identifikuje konkrétní instanci objektu, a informace související s komunikací o tom, jak se dostat k vzdálenému dílčímu dělení, kde je objekt umístěn.

Při prvním vytvoření je proxy server typu MarshalByRefObject. Při přetypování do různých typů si infrastruktura vzdálené komunikace udržuje přehled o nejpoužívanějším typu, aby se zabránilo zbytečnému načítání typu.

Viz také

Platí pro