Share via


COM+ オブジェクト コンストラクター文字列の概念

COM+ オブジェクト コンストラクター文字列は、コンポーネントに対して管理上指定される初期化文字列です。 オブジェクト コンストラクター文字列を使用すると、特定のタスク用に、後からカスタマイズできるような汎用性を持つ単一のコンポーネントを記述することができます。つまり、パラメーター化されたオブジェクトを構築することができます。

たとえば、この機能を使用して、汎用 ODBC 接続を保持するコンポーネントを作成し、後でコンポーネントの正確な DSN を管理的に指定できます。 システム構成が変更された場合は、それに応じてコンストラクター文字列を変更できます。

Note

オブジェクト コンストラクター文字列を使用して、セキュリティの機密情報を格納しないでください。

 

オブジェクト コンストラクター文字列をオブジェクト プールと組み合わせて使用すると、リソースをプールおよび再利用する方法をより細かく設定することができます。 たとえば、コンストラクタ文字列と CLSID 以外は同じである、いくつかの異なるコンポーネントを作成し、クライアントの異なるグループによって使用される接続を保持するオブジェクトの異なるプールを維持することができます。 これは、特定のセキュリティ ロールに接続をバインドする方法で接続が開かれ (たとえば、データベースで特定の認証を使用して接続を開く場合など)、一般的なケースでは再利用できない場合に便利です。

これを行うには、IObjectConstruct を使用してオブジェクト コンストラクター文字列に依存する 1 つの汎用コンポーネントを記述し、それを再コンパイルして、それぞれ個別の CLSID を持つカスタマイズ可能なコンポーネントをいくつか生成します。 その後、コンストラクタ文字列で適切な接続を開くように各コンポーネントを管理的に調整し、プールされるように構成すれば、CLSID ごとに異なるプールで維持されるようになります。

コンストラクタ文字列を指定できるのは、入力された文字列を認識するようにコンポーネントが特別に記述されている場合です。 コンポーネントは、IObjectConstruct を使用することで、プログラムでこれらの文字列にアクセスできます。

コンストラクター文字列は、オブジェクトの構築が管理上有効になっている場合にのみ、オブジェクト作成時に渡されます。 COM+ が、実装する IObjectConstruct::Construct メソッドを呼び出します。 そのメソッド内で、IObjectConstructString を使用してコンストラクター文字列にアクセスできます。 空の文字列も有効なエントリーとなることができます。

COM+ オブジェクト プール

コンポーネントのオブジェクト コンストラクター文字列の指定

オブジェクト コンストラクター文字列を使用してコンポーネントを構築する