ServicedComponent クラス
アセンブリ: System.EnterpriseServices (system.enterpriseservices.dll 内)
構文
<SerializableAttribute> _ Public MustInherit Class ServicedComponent Inherits ContextBoundObject Implements IRemoteDispatch, IDisposable, IServicedComponentInfo
[SerializableAttribute] public abstract class ServicedComponent : ContextBoundObject, IRemoteDispatch, IDisposable, IServicedComponentInfo
[SerializableAttribute] public ref class ServicedComponent abstract : public ContextBoundObject, IRemoteDispatch, IDisposable, IServicedComponentInfo
/** @attribute SerializableAttribute() */ public abstract class ServicedComponent extends ContextBoundObject implements IRemoteDispatch, IDisposable, IServicedComponentInfo
SerializableAttribute public abstract class ServicedComponent extends ContextBoundObject implements IRemoteDispatch, IDisposable, IServicedComponentInfo
特定の状況下では、COM+ アプリケーションで実行される ServicedComponent から派生したクラスの応答が停止することがあります。この問題は、動作のデッドロックが原因で発生します。マルチスレッド アプリケーションでは、コンポーネント参照の非同期クリーンアップが原因で、動作のデッドロックが発生する場合があります。この問題を回避するには、ServicedComponent から派生したオブジェクトを使用する操作が完了したときに、Dispose メソッドを呼び出します。詳細については、http://support.microsoft.com/default.aspx?scid=kb;en-us;327443 を参照してください。
メモ |
---|
操作が適切に実行されるように、クライアント コードから対象コンポーネントに対して Dispose を呼び出す必要があります。 |
クラスを構成済み COM コンポーネントとして公開する方法を次のコード例に示します。
using System; using System.EnterpriseServices; [assembly: ApplicationName("Calculator")] [assembly: ApplicationActivation(ActivationOption.Library)] [assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")] public class Calculator : ServicedComponent { public int Add (int x, int y) { return(x+y); } }
[assembly:ApplicationName("Calculator")]; [assembly:ApplicationActivation(ActivationOption::Library)]; [assembly:System::Reflection::AssemblyKeyFile("Calculator.snk")]; public ref class Calculator: public ServicedComponent { public: int Add( int x, int y ) { return (x + y); } };
import System.*; import System.EnterpriseServices.*; /** @assembly ApplicationName("Calculator") */ /** @assembly ApplicationActivation(ActivationOption.Library) */ /** @assembly System.Reflection.AssemblyKeyFile("Calculator.snk") */ public class Calculator extends ServicedComponent { public int Add(int x, int y) { return x + y; } //Add } //Calculator
このクラスを構成済み COM コンポーネントとして配置するには、厳密なキーを生成し、クラスをライブラリとしてコンパイルし、このライブラリを登録する必要があります。これらの 3 つの手順は、次の 3 つのコマンドによって実行されます。
System.MarshalByRefObject
System.ContextBoundObject
System.EnterpriseServices.ServicedComponent
System.EnterpriseServices.CompensatingResourceManager.Compensator
System.EnterpriseServices.RegistrationHelperTx
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
ServicedComponent コンストラクタ
アセンブリ: System.EnterpriseServices (system.enterpriseservices.dll 内)
構文
解説
.NET Framework のセキュリティ
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
ServicedComponent メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
CreateObjRef | リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。) | |
Dispose | オーバーロードされます。 ServicedComponent によって使用されているリソースを解放します。 | |
DisposeObject | オブジェクトを終了し、関連付けられている COM+ 参照を削除します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) | |
GetLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
InitializeLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Activate | オブジェクトが作成されるかプールから割り当てられるときにインフラストラクチャによって呼び出されます。カスタム初期化コードをオブジェクトに追加するには、このメソッドをオーバーライドします。 | |
CanBePooled | このメソッドは、オブジェクトがプールに戻される前にインフラストラクチャによって呼び出されます。オブジェクトがプールに戻されるかどうかを断定するには、このメソッドをオーバーライドします。 | |
Construct | コンストラクタが呼び出された直後にインフラストラクチャによって呼び出されて、コンストラクタ文字列を渡します。構築文字列値を使用するには、このメソッドをオーバーライドします。 | |
Deactivate | オブジェクトが非アクティブになる直前にインフラストラクチャによって呼び出されます。ジャスト イン タイム (JIT: Just-In-Time) のコンパイル コードまたはオブジェクト プーリングを使用する場合にカスタム終了コードを追加するには、このメソッドをオーバーライドします。 | |
Dispose | オーバーロードされます。 ServicedComponent によって使用されているリソースを解放します。 | |
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |
名前 | 説明 | |
---|---|---|
System.EnterpriseServices.IRemoteDispatch.RemoteDispatchAutoDone | COM+ コンテキストで、リモート メソッド呼び出しの後に、ServicedComponent クラス オブジェクトの done ビットが true に設定されるようにします。 | |
System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone | COM+ コンテキストで、リモート メソッド呼び出しの後に、ServicedComponent クラス オブジェクトの done ビットが true に設定されるとは限りません。 | |
System.EnterpriseServices.IServicedComponentInfo.GetComponentInfo | ServicedComponent クラス インターフェイスに関する情報を取得します。 |
ServicedComponent メンバ
COM+ サービスを使用するすべてのクラスの基本クラスを表します。
ServicedComponent データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック メソッド
名前 | 説明 | |
---|---|---|
CreateObjRef | リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。) | |
Dispose | オーバーロードされます。 ServicedComponent によって使用されているリソースを解放します。 | |
DisposeObject | オブジェクトを終了し、関連付けられている COM+ 参照を削除します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) | |
GetLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
InitializeLifetimeService | 対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Activate | オブジェクトが作成されるかプールから割り当てられるときにインフラストラクチャによって呼び出されます。カスタム初期化コードをオブジェクトに追加するには、このメソッドをオーバーライドします。 | |
CanBePooled | このメソッドは、オブジェクトがプールに戻される前にインフラストラクチャによって呼び出されます。オブジェクトがプールに戻されるかどうかを断定するには、このメソッドをオーバーライドします。 | |
Construct | コンストラクタが呼び出された直後にインフラストラクチャによって呼び出されて、コンストラクタ文字列を渡します。構築文字列値を使用するには、このメソッドをオーバーライドします。 | |
Deactivate | オブジェクトが非アクティブになる直前にインフラストラクチャによって呼び出されます。ジャスト イン タイム (JIT: Just-In-Time) のコンパイル コードまたはオブジェクト プーリングを使用する場合にカスタム終了コードを追加するには、このメソッドをオーバーライドします。 | |
Dispose | オーバーロードされます。 ServicedComponent によって使用されているリソースを解放します。 | |
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |
名前 | 説明 | |
---|---|---|
System.EnterpriseServices.IRemoteDispatch.RemoteDispatchAutoDone | COM+ コンテキストで、リモート メソッド呼び出しの後に、ServicedComponent クラス オブジェクトの done ビットが true に設定されるようにします。 | |
System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone | COM+ コンテキストで、リモート メソッド呼び出しの後に、ServicedComponent クラス オブジェクトの done ビットが true に設定されるとは限りません。 | |
System.EnterpriseServices.IServicedComponentInfo.GetComponentInfo | ServicedComponent クラス インターフェイスに関する情報を取得します。 |
- ServicedComponentのページへのリンク