RemotingServices.Unmarshal メソッド

定義

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

オーバーロード

Unmarshal(ObjRef)

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

Unmarshal(ObjRef, Boolean)

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

Unmarshal(ObjRef)

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

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

パラメーター

objectRef
ObjRef

プロキシが作成される対象のリモート オブジェクトを表す ObjRef

戻り値

特定の ObjRef が表すオブジェクトへのプロキシ。

属性

例外

objectRef パラメーターで指定した ObjRef インスタンスが適切に構成されていません。

コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。

次のコード例は、オブジェクトのマーシャリングを解除する方法を示しています。

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

注釈

ObjRef 、アプリケーション ドメイン境界を越えてオブジェクト参照を転送するために使用されるオブジェクトのシリアル化可能な表現です。 オブジェクトの を ObjRef 作成することは、マーシャリングと呼ばれます。 は ObjRef 、チャネルを介して別のアプリケーション ドメイン (場合によっては別のプロセスまたはコンピューター上) に転送できます。 もう一方のアプリケーション ドメインに入ったら、 ObjRef を解析してオブジェクトのプロキシを作成する必要があります。通常は実際のオブジェクトに接続されます。 この操作は、アンマーシャリングと呼ばれます。 アンマーシャリング中に、 ObjRef が解析され、リモート オブジェクトのメソッド情報が抽出され、透過的なプロキシと RealProxy オブジェクトの両方が作成されます。 透過的プロキシが共通言語ランタイムに登録される前に、解析された ObjRef の内容が透過的プロキシに追加されます。

ObjRefには、マーシャリングされるオブジェクトの および クラス、特定のオブジェクト インスタンスを一意に識別する URI、およびオブジェクトが配置されているリモート処理サブ区分に到達する方法に関する通信関連情報を記述Typeする情報が含まれます。

こちらもご覧ください

適用対象

Unmarshal(ObjRef, Boolean)

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

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

パラメーター

objectRef
ObjRef

プロキシが作成される対象のリモート オブジェクトを表す ObjRef

fRefine
Boolean

サーバーにある型に対してプロキシを詳細に指定する場合は true。それ以外の場合は false

戻り値

特定の ObjRef が表すオブジェクトへのプロキシ。

属性

例外

objectRef パラメーターで指定した ObjRef インスタンスが適切に構成されていません。

コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。

注釈

ObjRef 、アプリケーション ドメイン境界を越えてオブジェクト参照を転送するために使用されるオブジェクトのシリアル化可能な表現です。 オブジェクトの を ObjRef 作成することは、マーシャリングと呼ばれます。 は ObjRef 、チャネルを介して別のアプリケーション ドメイン (場合によっては別のプロセスまたはコンピューター上) に転送できます。 もう一方のアプリケーション ドメインに入ったら、 ObjRef を解析してオブジェクトのプロキシを作成する必要があります。通常は実際のオブジェクトに接続されます。 この操作は、アンマーシャリングと呼ばれます。 アンマーシャリング中に、 ObjRef が解析され、リモート オブジェクトのメソッド情報が抽出され、透過的なプロキシと RealProxy オブジェクトの両方が作成されます。 透過的プロキシが共通言語ランタイムに登録される前に、解析された ObjRef の内容が透過的プロキシに追加されます。

ObjRefには、マーシャリングされるオブジェクトの および クラス、特定のオブジェクト インスタンスを一意に識別する URI、およびオブジェクトが配置されているリモート処理サブ区分に到達する方法に関する通信関連情報を記述Typeする情報が含まれます。

最初に作成されたとき、プロキシの型 MarshalByRefObjectは です。 さまざまな型にキャストすると、リモート処理インフラストラクチャは、型を不必要に読み込むのを避けるために、最も使用される型を追跡します。

こちらもご覧ください

適用対象