機能イベント レシーバ

サーバー側コード ルーチンを指定します。このルーチンは、フィーチャーの有効期間中に発生する 4 つの主要なイベント (インストール、アクティブ化、非アクティブ化、および削除) の一部として呼び出されます。

実例

フィーチャーを作成中のある開発者が、アクティブ化されたときにオブジェクト モデルに呼び出しを行い、非アクティブ化されたときにクリーンアップを行うようにフィーチャーを設定することにしました。開発者はカスタム フィーチャー イベント レシーバ クラスを作成し、フィーチャー定義にそのクラスへの参照を追加します。

詳細な技術情報

フィーチャーのイベント レシーバをアセンブリにコンパイルします。アセンブリはフィーチャーの定義に関連付けられています。フィーチャーのレシーバがそのフィーチャーに関連付けられている場合、フィーチャーの有効期間中に 4 つのイベントのいずれかが発生したときに、そのイベントのスコープとターゲットに関する詳細情報を使用して、フィーチャー レシーバが呼び出されます。

次の feature.xml のコード例に、フィーチャー定義の一部としてフィーチャー レシーバを登録する方法を示します。

<Feature   Id="39FA56C4-7A47-44F5-83CC-01B5E777F436" Title="Feature with Receiver Callback" Scope="Web" ReceiverAssembly="SimpleReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=207e2bf263eeeff6, processorArchitecture=MSIL" ReceiverClass="MS.Samples.SharePoint.SimpleProvisioner" xmlns="https://schemas.microsoft.com/sharepoint/" />

フィーチャー イベント レシーバを使用すると、フィーチャーがサイトにインストールしたファイルの削除など、コアのフィーチャーのアクティブ化と非アクティブ化では実行できない追加のセットアップ ルーチンまたはクリーンアップ ルーチンを実行できます。

サポートの詳細情報

フィーチャーをアクティブ化または非アクティブ化するたびにフィーチャー イベント レシーバが呼び出される可能性があるため、イベントに関連して遅延が発生することがあります。多くの場所で一度に新しいフィーチャーを追加または削除する (非常に大規模な SharePoint 環境内のすべての Web サイトのフィーチャーをアクティブ化するなど) 場合、フィーチャー イベント レシーバのコードの量によっては、これは大幅な遅延となる可能性があります。