オートメーション エクステンダの実装と使用
更新 : 2007 年 11 月
Visual Studio オートメーション モデルのオートメーション エクステンダには、指定したプロジェクトの種類で表示されるプロパティを追加またはフィルタ処理する機能が用意されています。たとえば、Visual Studio には、Visual Basic クラスを表すオブジェクトを備えた Visual Basic コード モデルが含まれています。オートメーション エクステンダを使用すると、たとえば、中間層のビジネス オブジェクト内の既存のプロパティに新しいプロパティを追加できます。また、このモデルを使用して、プロジェクトのプロパティ ページに表示されるプロパティにフィルタをかけることもできます。
次に、考えられるシナリオを 1 つ示します。ユーザーは、ソリューション エクスプローラでクラス項目を選択し、ウィザードで作成されたコードを変更します。または、エディタのカーソルをクラス定義内に配置します。その結果、[プロパティ] ウィンドウに、クラスの追加プロパティを表示できます。これは中間層のビジネス オブジェクトの定義であるため、プロパティは関連があります。オートメーション エクステンダを使用すると、これらのことが可能になります。また、ほかの機能も利用できます。
オートメーション エクステンダ オブジェクト モデルのオブジェクトを次に示します。
オブジェクト名 |
説明 |
---|---|
IExtenderProvider インターフェイス |
既知の拡張プロバイダを表します。 |
IExtenderProviderUnk インターフェイス |
不明な拡張プロバイダを表します。 |
IExtenderSite インターフェイス |
オートメーション エクステンダをホストするサイト オブジェクトです。 |
IFilterProperties インターフェイス |
実装すると、エクステンダは、指定したプロパティが [プロパティ] ウィンドウに表示されないようにできます。 |
ObjectExtenders オブジェクト |
オートメーション エクステンダへのアクセスを提供します。 |
これらのオブジェクトを使用して、次の操作を行うことができます。
Visual Studio のオブジェクトに、[プロパティ] ウィンドウまたはコードを使用してアクセスできるプロパティを追加します。
[プロパティ] ウィンドウに表示されないように、プロパティを非表示にします。
プロパティを、名前が同じでも特定の値のセットだけを受け取るプロパティと置き換えます。
オートメーション エクステンダの例
オートメーション エクステンダを使用して、Visual Studio オブジェクトにプロパティおよびメソッドを追加する方法の例については、「Visual Studio Automation Samples」にある Solution Extender Add-in サンプルを参照してください。
SolutionExtender サンプルは、ソリューションの [プロパティ] ウィンドウ表示オブジェクトおよび DTE.Solution オートメーション オブジェクトの両方を拡張します。このサンプルでは、Notes、Created、LastAccessed、および LastModified という 4 つの新しいプロパティを追加します。DTE.Solution を使用して新しいプロパティを参照するには、次に示すマクロのようにします。
Sub ShowNotes()
Dim extender As Object
extender = DTE.Solution.Extender("SolutionMisc")
MsgBox(extender.Notes)
End Sub
サンプルを実行するには
SolutionExtender ソリューションをビルドし、配置します。
SolutionExtender.reg というコマンド ラインのレジストリ ファイルを使用して、SolutionExtender.reg に登録エントリを追加します。
devenv.exe を実行し、ソリューションを開くか、新規のソリューションを作成します。
ソリューション エクスプローラの [ソリューション] ノードを選択し、新しく追加したプロパティを表示します。