ServicedComponent クラス

定義

COM+ サービスを使用するすべてのクラスの基本クラスを表します。

public ref class ServicedComponent abstract : ContextBoundObject, IDisposable, System::EnterpriseServices::IRemoteDispatch, System::EnterpriseServices::IServicedComponentInfo
[System.Serializable]
public abstract class ServicedComponent : ContextBoundObject, IDisposable, System.EnterpriseServices.IRemoteDispatch, System.EnterpriseServices.IServicedComponentInfo
[<System.Serializable>]
type ServicedComponent = class
    inherit ContextBoundObject
    interface IRemoteDispatch
    interface IDisposable
    interface IServicedComponentInfo
Public MustInherit Class ServicedComponent
Inherits ContextBoundObject
Implements IDisposable, IRemoteDispatch, IServicedComponentInfo
継承
派生
属性
実装

次のコード例は、構成済みの COM コンポーネントとしてクラスを公開する方法を示しています。


[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);
   }

};
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);
    }
}

このクラスを構成済みの COM コンポーネントとしてデプロイするには、強力なキーを生成し、クラスをライブラリとしてコンパイルし、ライブラリを登録する必要があります。 これら 3 つの手順は、次の 3 つのコマンドによって実現されます。

sn -k Calculator.snk
csc /t:library Calculator.cs
regsvcs Calculator.dll

注釈

特定の条件下では、COM+ アプリケーションで実行される ServicedComponent から派生したクラスが応答を停止することがあります。 この問題は、アクティビティのデッドロックが原因で発生します。 コンポーネント参照の非同期クリーンアップにより、マルチスレッド アプリケーションでアクティビティがデッドロックする可能性があります。 この問題を回避するには、ServicedComponentから派生したオブジェクトの操作を完了するときに、Dispose メソッドを呼び出します。

Note

クライアント コードは、適切な操作を確保するために、サービス コンポーネントの Dispose を呼び出す必要があります。

コンストラクター

名前 説明
ServicedComponent()

ServicedComponent クラスの新しいインスタンスを初期化します。

メソッド

名前 説明
Activate()

オブジェクトがプールから作成または割り当てられるときに、インフラストラクチャによって呼び出されます。 カスタム初期化コードをオブジェクトに追加するには、このメソッドをオーバーライドします。

CanBePooled()

このメソッドは、オブジェクトがプールに戻される前に、インフラストラクチャによって呼び出されます。 オブジェクトがプールに戻されるかどうかを投票するには、このメソッドをオーバーライドします。

Construct(String)

コンストラクターが呼び出された直後にインフラストラクチャによって呼び出され、コンストラクター文字列が渡されます。 構築文字列値を使用するには、このメソッドをオーバーライドします。

CreateObjRef(Type)

リモート オブジェクトとの通信に使用されるプロキシの生成に必要なすべての関連情報を含むオブジェクトを作成します。

(継承元 MarshalByRefObject)
Deactivate()

オブジェクトが非アクティブ化されるときにインフラストラクチャによって呼び出されます。 Just-In-Time (JIT) コンパイル 済みコードまたはオブジェクト プーリングが使用されている場合に、カスタムの最終処理コードをオブジェクトに追加するには、このメソッドをオーバーライドします。

Dispose()

ServicedComponentによって使用されるすべてのリソースを解放します。

Dispose(Boolean)

ServicedComponentによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

DisposeObject(ServicedComponent)

オブジェクトを最終処理し、関連付けられている COM+ 参照を削除します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IRemoteDispatch.RemoteDispatchAutoDone(String)

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

COM+ コンテキストで、 ServicedComponent クラス オブジェクトの done ビットがリモート メソッド呼び出し後に true に設定されていることを確認します。

IRemoteDispatch.RemoteDispatchNotAutoDone(String)

COM+ コンテキストでは、 ServicedComponent クラス オブジェクトの done ビットがリモート メソッド呼び出し後に true に設定されることを保証しません。

IServicedComponentInfo.GetComponentInfo(Int32, String[])

ServicedComponent クラス インスタンスに関する特定の情報を取得します。

適用対象