オブジェクト構築の技術サンプル

更新 : 2007 年 11 月

このサンプルでは、.NET 環境でのオブジェクト構築文字列の使用例を示します。オブジェクト構築文字列とは、コンポーネント サービス管理ツールを利用して指定したり、編集したりできる初期化用の文字列です。オブジェクト構築文字列を使用すると、コンポーネントに構成情報をハードコーディングする必要がなくなります。このサンプルでは、ボタンが 1 つあるフォームがユーザー インターフェイスになっています。このボタンによって、構成文字列を使用するオブジェクトを作成します。メッセージ ボックスに、アクティベーションの各段階が表示されます。

サンプルの使用については、次のトピックを参照してください。

コマンド プロンプトを使用してサンプルをビルドするには

  1. コマンド プロンプト ウィンドウを開き、Technologies\ComponentServices\ObjectConstruction ディレクトリにある、言語固有のサブディレクトリのいずれかに移動します。

  2. 使用されているプログラミングに応じて、「msbuild ObjectConstructionCS.sln」または「msbuild ObjectConstructionVB.sln」と入力します。

Visual Studio を使用してサンプルをビルドするには

  1. Windows エクスプローラを開き、Technologies\ComponentServices\ObjectConstruction ディレクトリにある、言語固有のサブディレクトリのいずれかに移動します。

  2. 使用されているプログラミング言語に応じて、ObjectConstructionCS.sln ファイルまたは ObjectConstructionVB.sln ファイルのアイコンをダブルクリックし、このファイルを Visual Studio で開きます。

  3. [ビルド] メニューの [ソリューションのビルド] をクリックします。

サンプルを実行するには

  1. コマンド プロンプト ウィンドウまたは Windows エクスプローラを開き、ビルドした実行可能ファイルが格納されているディレクトリに移動します。

  2. コマンド ラインで「OCDemo.exe」と入力するか、Windows エクスプローラでファイルをダブルクリックして実行可能ファイルを起動します。実行しているサンプル アプリケーションが \CS サブディレクトリにある C# バージョンなのか、\VB サブディレクトリにある Visual Basic バージョンなのかを確認してください。実行しているファイルによって、以降の手順で編集する COM+ コンポーネント属性が異なります。

  3. プログラムが起動したら、[Create Object] ボタンをクリックします。アクティベーションの各段階でメッセージ ボックスが表示されます。IObjectConstruct::Construct への呼び出しで、オブジェクト構築文字列が使用されています。

  4. [スタート] ボタンをクリックし、[すべてのプログラム]、[管理ツール] の順にポイントし、[コンポーネント サービス] をクリックして、コンポーネント サービス管理ツールを起動します。左側のエクスプローラ ペインで、コンポーネント サービス\コンピュータ\マイ コンピュータ\COM+ アプリケーションを展開し、OCDemoSvr COM+ アプリケーションを探します。

  5. OCDemoSvr\Components を展開し、Microsoft.Samples.Technologies.ComponentServices.ObjectConstruction.ObjectConstructionTest component を探します。

  6. ObjectConstructionTest コンポーネントを右クリックし、ポップアップ メニューの [プロパティ] をクリックします。

  7. [アクティブ化] タブをクリックし、[コンストラクタ] 文字列編集フィールドに新しいテキストを入力します。[OK] をクリックして変更を適用します。

  8. OCDemo アプリケーションに戻り、[Create Object] をもう一度クリックします。IObjectConstruct メソッドから新しい値が報告されます。この値は、COM+ エクスプローラのコンポーネント プロパティ ページで編集した新しい値と一致しています。

サンプルをアンインストールするには

  1. msbuild.exe を実行したディレクトリ、または .sln ファイルを開いたディレクトリに移動します。

  2. 使用しているプログラミング言語の選択に応じて、コマンド ラインで、「msbuild.exe ObjectConstructionVB.sln /t:Clean」または「msbuild.exe ObjectConstructionCS.sln /t:Clean」と入力します。これによって /u スイッチ付きで .NET サービス インストール ツール (Regsvcs.exe) および グローバル アセンブリ キャッシュ ツール (Gacutil.exe) が呼び出され、COM+ カタログおよびグローバル アセンブリ キャッシュからサンプル ファイルが削除されます。

必要条件

プラットフォーム : Windows 2000、Windows XP、Windows Server 2003

.NET Framework のバージョン : 2.0、1.1、1.0

解説

サンプルのバイナリ ファイルを作成する方法およびサンプルを登録する手順については、ソース コード ファイル内のコメントを参照してください。

この手順は、オブジェクト構築を有効にし、既定の構築文字列を使用しながら COM+ コンポーネントを作成する方法を示しています。オブジェクト インスタンスを作成すると、複数のコンポーネント メソッドでメッセージ ボックスが表示され、呼び出し順序が示されます。コンポーネント サービス管理ツールを使用してオブジェクト構築文字列を変更し、サンプルを再度実行し、コンポーネント インスタンスに渡されるオブジェクト構築文字列が変更されていることを確認します。

52a1w900.alert_note(ja-jp,VS.90).gifメモ :

サンプルを実行する前に、グローバル アセンブリ キャッシュ ツール (Gacutil.exe) を利用して OCDemoSvr.dll のアセンブリをグローバル アセンブリ キャッシュにインストールしておく必要があります。Gacutil.exe は SDK\<version>\Bin ディレクトリにあります。たとえば、Visual Basic バージョンのサンプルをビルドするには、C:\Documents and Settings\Your User Name\My Documents\ Samples\Technologies\ComponentServices\ObjectConstruction\VB ディレクトリに移動し、「gacutil -i OCDemoSvr.dll」と入力します。

コンポーネント サービス管理ツールで表示されるコンポーネント名は、Microsoft.Samples.Technologies.ComponentServices.ObjectConstruction.ObjectConstructionTest です。

コンポーネントでオブジェクト構築が有効にしてある場合、COM+ は、オブジェクト インスタンスの作成直後に IObjectContruct::Construct メソッドを呼び出し、実装します。コンポーネントのアクティベーション プロパティに指定したオブジェクト構築文字列が、このメソッドの引数として渡されます。この機能を、オブジェクト文字列を適切に使用したコンポーネント コードと一緒に使用すると、オブジェクト構築のパラメータ化を効果的に行うことができます。

既定の構築文字列は、ConstructionEnabledAttribute の既定のプロパティか、COM+ カタログ、または両方で指定できます。

コンポーネントを開発する場合、たとえば汎用 ODBC 接続を維持するコンポーネントなどを記述する場合に、この機能を使用します。この場合は、オブジェクト構築文字列で正確な DSN を保持します。この文字列は、コンポーネント サービス管理ツールを使用して変更できます。

オブジェクト構築文字列は、COM+ オブジェクト プーリング サービスと一緒に使用すると便利です。

参照

概念

マネージ コードでの COM 型の使用

参照

ConstructionEnabledAttribute

グローバル アセンブリ キャッシュ ツール (Gacutil.exe)

ServicedComponent

System.EnterpriseServices

System.Reflection

その他の技術情報

オブジェクト構築 [fxent]

サービス コンポーネントの作成 [fxent]