Udostępnij za pośrednictwem


RemotingServices.Unmarshal Metoda

Definicja

Konwertuje daną ObjRef na obiekt proxy.

Przeciążenia

Unmarshal(ObjRef)

Pobiera obiekt ObjRef proxy i tworzy z niego obiekt proxy.

Unmarshal(ObjRef, Boolean)

ObjRef Pobiera obiekt serwera proxy i tworzy z niego obiekt proxy, ujmowując go do typu na serwerze.

Unmarshal(ObjRef)

Pobiera obiekt ObjRef proxy i tworzy z niego obiekt 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

Obiekt ObjRef reprezentujący obiekt zdalny, dla którego tworzony jest serwer proxy.

Zwraca

Serwer proxy do obiektu, który reprezentuje dana ObjRef wartość.

Atrybuty

Wyjątki

Wystąpienie ObjRef określone w parametrze objectRef nie jest poprawnie sformułowane.

Co najmniej jeden z wywołujących wyżej w stosie wywołań nie ma uprawnień do konfigurowania typów komunikacji telefonicznej i kanałów.

Przykłady

W poniższym przykładzie kodu pokazano, jak cofnąć marshal obiektu.

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

Uwagi

A ObjRef jest serializowalnym reprezentacją obiektu używanego do transferu odwołania do obiektu przez granicę domeny aplikacji. Tworzenie obiektu ObjRef dla obiektu jest nazywane marshalingiem. Można ObjRef go przenieść za pośrednictwem kanału do innej domeny aplikacji (prawdopodobnie w innym procesie lub komputerze). Raz w innej domenie aplikacji należy przeanalizować, ObjRef aby utworzyć serwer proxy dla obiektu, zazwyczaj połączony z rzeczywistym obiektem. Ta operacja jest znana jako unmarshaling. Podczas unmarshaling element ObjRef jest analizowany w celu wyodrębnienia informacji o metodzie obiektu zdalnego, a zarówno przezroczysty serwer proxy, jak i RealProxy obiekty są tworzone. Zawartość analizowana jest dodawana ObjRef do przezroczystego serwera proxy przed zarejestrowaniem przezroczystego serwera proxy w środowisku uruchomieniowym języka wspólnego.

Element ObjRef zawiera informacje opisujące klasę Type i obiektu marshalowanego, identyfikator URI, który jednoznacznie identyfikuje określone wystąpienie obiektu oraz informacje dotyczące sposobu dotarcia do podsieci komunikacji, w której znajduje się obiekt.

Zobacz też

Dotyczy

Unmarshal(ObjRef, Boolean)

ObjRef Pobiera obiekt serwera proxy i tworzy z niego obiekt proxy, ujmowując go do typu na serwerze.

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

Obiekt ObjRef reprezentujący obiekt zdalny, dla którego tworzony jest serwer proxy.

fRefine
Boolean

true aby uściślić serwer proxy do typu na serwerze; w przeciwnym razie , false.

Zwraca

Serwer proxy do obiektu, który reprezentuje dana ObjRef wartość.

Atrybuty

Wyjątki

Wystąpienie ObjRef określone w parametrze objectRef nie jest poprawnie sformułowane.

Co najmniej jeden z wywołujących wyżej w stosie wywołań nie ma uprawnień do konfigurowania typów komunikacji telefonicznej i kanałów.

Uwagi

A ObjRef jest serializowalnym reprezentacją obiektu używanego do transferu odwołania do obiektu przez granicę domeny aplikacji. Tworzenie obiektu ObjRef dla obiektu jest nazywane marshalingiem. Można ObjRef go przenieść za pośrednictwem kanału do innej domeny aplikacji (prawdopodobnie w innym procesie lub komputerze). Raz w innej domenie aplikacji należy przeanalizować, ObjRef aby utworzyć serwer proxy dla obiektu, zazwyczaj połączony z rzeczywistym obiektem. Ta operacja jest znana jako unmarshaling. Podczas unmarshaling element ObjRef jest analizowany w celu wyodrębnienia informacji o metodzie obiektu zdalnego, a zarówno przezroczysty serwer proxy, jak i RealProxy obiekty są tworzone. Zawartość analizowana jest dodawana ObjRef do przezroczystego serwera proxy przed zarejestrowaniem przezroczystego serwera proxy w środowisku uruchomieniowym języka wspólnego.

Element ObjRef zawiera informacje opisujące klasę Type i obiektu marshalowanego, identyfikator URI, który jednoznacznie identyfikuje określone wystąpienie obiektu oraz informacje dotyczące sposobu dotarcia do podsieci komunikacji, w której znajduje się obiekt.

Po pierwszym utworzeniu serwer proxy ma typ MarshalByRefObject. Podczas rzutowania jej do różnych typów infrastruktura komunikacji sieciowej śledzi najczęściej używany typ, aby uniknąć niepotrzebnego ładowania typu.

Zobacz też

Dotyczy