サービス コンポーネントは、CLS 準拠の言語で作成され、System.EnterpriseServices.ServicedComponent クラスから直接または間接的に派生するクラスです。EnterpriseServices 名前空間によって、このように構成されたクラスを COM+ アプリケーションでホストし、COM+ サービスを使用できます。サポートされているサービスの一覧については、「利用可能な COM+ サービスの概要」を参照してください。
自動トランザクションやキュー コンポーネントなどの COM+ サービスは、宣言によって構成できます。デザイン時に、サービス関連の属性を適用し、それらのサービスを使用するクラスのインスタンスを作成します。一部のサービスは、サービス関連のクラスまたはインターフェイスのメソッドを呼び出して構成します。また、あるオブジェクトから別のオブジェクトにフローすることが可能なサービスもあります。たとえば、トランザクションを要求するように構成されたオブジェクトが、そのトランザクションを次のオブジェクトにフローすることがあります (次のオブジェクトもトランザクションをサポートまたは要求する場合)。
クラス実装に適用される構成情報は、COM+ カタログに保持されます。実行時に、コードに適用した属性に基づいて、COM+ がコンテキスト サービス層を作成します。COM+ によってホストされる 2 つのマネージ オブジェクト間をフローする自動トランザクションの例を次の図に示します。
COM+ アプリケーションでホストするサービス コンポーネント
サービスが、COM+ と .NET Framework オブジェクト間をフローする場合もあります。それぞれの環境が、そのネイティブのコードの実装と実行を制御します。COM+ は常にオブジェクト コンテキストを提供します。
メモ : |
|---|
| 正しい動作が行われるようにするには、クライアント コードは、サービス コンポーネントで Dispose を呼び出す必要があります。 |
参照