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 が表すオブジェクトへのプロキシ。

属性

例外

ObjRef パラメーターで指定されたobjectRef インスタンスが整形式ではありません。

呼び出し履歴の上位の呼び出し元の少なくとも 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には、マーシャリングされるオブジェクトのTypeとクラス、特定のオブジェクト インスタンスを一意に識別する URI、およびオブジェクトが配置されているリモート処理サブ区分に到達する方法に関する通信関連情報が含まれます。

こちらもご覧ください

適用対象

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 が表すオブジェクトへのプロキシ。

属性

例外

ObjRef パラメーターで指定されたobjectRef インスタンスが整形式ではありません。

呼び出し履歴の上位の呼び出し元の少なくとも 1 つに、リモート処理の種類とチャネルを構成するアクセス許可がありません。

注釈

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

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

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

こちらもご覧ください

適用対象