RemotingServices.Unmarshal Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.