次の方法で共有


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操作を完了したときに メソッドを呼び出します。

注意

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

コンストラクター

ServicedComponent()

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

メソッド

Activate()

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

CanBePooled()

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

Construct(String)

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

CreateObjRef(Type)

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

(継承元 MarshalByRefObject)
Deactivate()

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

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 クラス インターフェイスに関する特定の情報を取得します。

適用対象