RemotingServices.Unmarshal Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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
- fRefine
- Boolean
true
upř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.