次の方法で共有


RemotingServices.Unmarshal メソッド

特定の ObjRef をプロキシ オブジェクトに変換します。

オーバーロードの一覧

ObjRef を取り、これからプロキシ オブジェクトを作成します。

[Visual Basic] Overloads Public Shared Function Unmarshal(ObjRef) As Object

[C#] public static object Unmarshal(ObjRef);

[C++] public: static Object* Unmarshal(ObjRef*);

[JScript] public static function Unmarshal(ObjRef) : Object;

ObjRef を取り、これからプロキシ オブジェクトを作成し、サーバーにある型に対してこのプロキシ オブジェクトを詳細に指定します。

[Visual Basic] Overloads Public Shared Function Unmarshal(ObjRef, Boolean) As Object

[C#] public static object Unmarshal(ObjRef, bool);

[C++] public: static Object* Unmarshal(ObjRef*, bool);

[JScript] public static function Unmarshal(ObjRef, Boolean) : Object;

使用例

[Visual Basic, C#, C++] オブジェクトのマーシャリングを解除する方法の例を次に示します。

[Visual Basic, C#, C++] メモ   ここでは、Unmarshal のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
ChannelServices.RegisterChannel(New HttpChannel())

Dim objectSample As SampleService = CType(Activator.GetObject(GetType(SampleService), _ 
      "https://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.")

[C#] 
ChannelServices.RegisterChannel(new HttpChannel());

SampleService objectSample = (SampleService)Activator.GetObject(typeof(SampleService), 
    "https://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."); 

[C++] 
ChannelServices::RegisterChannel(new HttpChannel());

SampleService* objectSample = dynamic_cast<SampleService*>(Activator::GetObject(__typeof(SampleService), 
    S"https://localhost:9000/MySampleService/SampleService.soap"));

Console::WriteLine(S"https://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 = dynamic_cast<SampleTwo*>(RemotingServices::Unmarshal(objRefSampleTwo));

objectSampleTwo->PrintMessage(S"ObjRef successfuly unmarshaled."); 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

RemotingServices クラス | RemotingServices メンバ | System.Runtime.Remoting 名前空間