MarshalByRefObject クラス
アセンブリ: mscorlib (mscorlib.dll 内)


アプリケーション ドメインとは、1 つ以上のアプリケーションが常駐するオペレーティング システム プロセスのパーティションです。同一のアプリケーション ドメインのオブジェクトは直接通信します。異なるアプリケーション ドメインのオブジェクトは、アプリケーション ドメインの境界を越えてオブジェクトのコピーを転送するか、メッセージを交換するためにプロキシを使用することにより通信します。
MarshalByRefObject は、プロキシを使用してメッセージを交換することにより、アプリケーション ドメインの境界を越えて通信するオブジェクトの基本クラスです。MarshalByRefObject から継承されないオブジェクトは、暗黙的に値渡しでマーシャリングされます。リモート アプリケーションが値渡しのオブジェクトを参照する場合、そのオブジェクトのコピーがアプリケーション ドメイン境界を越えて渡されます。
MarshalByRefObject オブジェクトは、ローカル アプリケーション ドメインの境界内では直接アクセスできます。リモート アプリケーション ドメインのアプリケーションが初めて MarshalByRefObject にアクセスするときに、プロキシはそのリモート アプリケーションに渡されます。プロキシでの以降の呼び出しは、ローカル アプリケーション ドメインに常駐するオブジェクトにマーシャリングされます。
アプリケーション ドメインの境界を越えて使用する型は MarshalByRefObject から継承する必要があります。そのメンバが作成されたアプリケーション ドメイン外では同メンバを使用できないため、オブジェクトの状態をコピーできません。

後でリモート処理で使用される MarshalByRefObject から派生したクラスを、次の例に示します。
Imports System Imports System.Runtime.Remoting Imports System.Security.Permissions Public Class SetObjectUriForMarshalTest Class TestClass Inherits MarshalByRefObject End Class <SecurityPermission(SecurityAction.LinkDemand)> _ Public Shared Sub Main() Dim obj As TestClass = New TestClass() RemotingServices.SetObjectUriForMarshal(obj, "testUri") RemotingServices.Marshal(obj) Console.WriteLine(RemotingServices.GetObjectUri(obj)) End Sub End Class
using System; using System.Runtime.Remoting; using System.Security.Permissions; public class SetObjectUriForMarshalTest { class TestClass : MarshalByRefObject { } [SecurityPermission(SecurityAction.LinkDemand)] public static void Main() { TestClass obj = new TestClass(); RemotingServices.SetObjectUriForMarshal(obj, "testUri"); RemotingServices.Marshal(obj); Console.WriteLine(RemotingServices.GetObjectUri(obj)); } }
using namespace System; using namespace System::Runtime::Remoting; using namespace System::Security::Permissions; public ref class SetObjectUriForMarshalTest { public: ref class TestClass: public MarshalByRefObject{}; [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] static void Main() { TestClass^ obj = gcnew TestClass; RemotingServices::SetObjectUriForMarshal( obj, "testUri" ); RemotingServices::Marshal(obj); Console::WriteLine( RemotingServices::GetObjectUri( obj ) ); } };



Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MarshalByRefObject コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MarshalByRefObject メソッド

名前 | 説明 | |
---|---|---|
![]() | CreateObjRef | リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | InitializeLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 |

MarshalByRefObject メンバ
リモート処理をサポートするアプリケーションで、アプリケーション ドメイン境界を超えてオブジェクトにアクセスできるようにします。
MarshalByRefObject データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | CreateObjRef | リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | InitializeLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 |

Weblioに収録されているすべての辞書からMarshalByRefObjectを検索する場合は、下記のリンクをクリックしてください。

- MarshalByRefObjectのページへのリンク