SharePoint プロジェクト項目の拡張
既に Visual Studio にインストールされている種類の SharePoint プロジェクト項目に機能を追加する必要がある場合は、プロジェクト項目の拡張機能を作成します。たとえば、Visual Studio の組み込みのイベント レシーバーまたはリスト定義に対する拡張機能を作成したり、カスタム プロジェクト項目の種類に対する拡張機能を作成したりできます。また、すべての種類の SharePoint プロジェクト項目の拡張機能を作成することもできます。
SharePoint プロジェクト項目の拡張のタスク
プロジェクト項目を拡張するには、ISharePointProjectItemTypeExtension インターフェイスを実装する Visual Studio 拡張機能アセンブリを構築します。詳細については、「方法: SharePoint プロジェクト項目の拡張機能を作成する」を参照してください。
プロジェクト項目を拡張する場合は、プロジェクト項目に次の機能も追加できます。
ショートカット メニュー項目をプロジェクト項目の種類に追加する。メニュー項目は **[ソリューション エクスプローラー]**プロジェクト項目に対するショートカット メニューを開いたときに表示されます。プロジェクト項目を右クリックするか、を選択し、Shift + F10キーを選択すると、ショートカット メニューが開きます。詳細については、「方法: ショートカット メニュー項目を SharePoint プロジェクト項目の拡張機能に追加する」を参照してください。
プロジェクト項目にカスタム プロパティを追加する。プロパティは [プロパティ] のウィンドウで **[ソリューション エクスプローラー]**のプロジェクト項目を選択するときに表示されます。詳細については、「方法: SharePoint プロジェクト項目の拡張機能にプロパティを追加する」を参照してください。
プロジェクト項目の拡張機能の作成、配置、およびテストの方法については、「チュートリアル: SharePoint プロジェクト項目の種類の拡張」を参照してください。
プロジェクト項目の拡張機能とプロジェクト項目のインスタンスとの関係について
プロジェクト項目の拡張機能を作成するときに、関連付けられている種類のプロジェクト項目が SharePoint プロジェクトに追加されると、Visual Studio によって拡張機能が読み込まれます。たとえば、イベント レシーバー プロジェクト項目の拡張機能を作成すると、プロジェクトにイベント レシーバー プロジェクト項目を追加したときに、Visual Studio によって拡張機能が読み込まれます。Visual Studio は、関連付けられているプロジェクト項目の種類のすべてのインスタンスの拡張機能と同一のインスタンスを読み込みます。前の例では、ユーザーがプロジェクトに 2 つ目のイベント レシーバー プロジェクト項目を追加すると、拡張機能の同一インスタンスを使用し、2 つ目のプロジェクト項目がカスタマイズされます。
拡張するプロジェクト項目の種類の特定のインスタンスにアクセスするには、ISharePointProjectItemTypeExtension.Initialize メソッドの実装で、projectItemType パラメーターの ISharePointProjectItemEvents イベントの 1 つを処理します。たとえば、拡張の対象となっている種類のプロジェクト項目がどの時点でプロジェクトに追加されるかを判断するには、ProjectItemAdded イベントを処理します。詳細については、「方法: SharePoint プロジェクト項目の拡張機能を作成する」を参照してください。
SharePoint プロジェクト項目の識別子
それぞれの SharePoint プロジェクト項目には、対応する文字列識別子があります。次のようなタスクを実行する場合は、プロジェクト項目の識別子を知っておく必要があります。
プロジェクト項目の拡張機能を作成する。この場合、拡張の対象となるプロジェクト項目の識別子を SharePointProjectItemTypeAttribute のコンストラクターに渡す必要があります。すべてのプロジェクト項目の種類の拡張機能を作成するには、* 文字列値を渡します。
プロジェクト項目をプログラムによってプロジェクトに追加する。この場合、プロジェクト項目の識別子を ISharePointProjectItemCollection.Add メソッドに渡す必要があります。
Visual Studio に付属する SharePoint プロジェクト項目の識別子を次の表に示します。
プロジェクト項目の名前 |
文字列識別子 |
---|---|
ビジネス データ カタログ モデル |
Microsoft.VisualStudio.SharePoint.BusinessDataConnectivity |
コンテンツ タイプ |
Microsoft.VisualStudio.SharePoint.ContentType |
イベント レシーバー |
Microsoft.VisualStudio.SharePoint.EventHandler |
空の要素 |
Microsoft.VisualStudio.SharePoint.GenericElement |
リスト定義 コンテンツ タイプに基づくリスト定義 |
Microsoft.VisualStudio.SharePoint.ListDefinition |
リスト インスタンス |
Microsoft.VisualStudio.SharePoint.ListInstance |
Module |
Microsoft.VisualStudio.SharePoint.Module |
シーケンシャル ワークフロー ステート マシン ワークフロー |
Microsoft.VisualStudio.SharePoint.Workflow |
サイト定義 |
Microsoft.VisualStudio.SharePoint.SiteDefinition |
可視 Web パーツ |
Microsoft.VisualStudio.SharePoint.VisualWebPart |
Web パーツ |
Microsoft.VisualStudio.SharePoint.WebPart |
ワークフロー関連付けフォーム |
Microsoft.VisualStudio.SharePoint.WorkflowAssociation |
参照
処理手順
チュートリアル: SharePoint プロジェクト項目の種類の拡張
概念
方法: SharePoint プロジェクト項目の拡張機能を作成する
方法: ショートカット メニュー項目を SharePoint プロジェクト項目の拡張機能に追加する