SharePoint Foundation 2010 での新しいイベント
最終更新日: 2010年4月8日
適用対象: SharePoint Foundation 2010
この記事の内容
リストに対する新しい Add イベントと Delete イベント
SharePoint サイトに対する新しい Add イベント
新しい同期の After イベント
パフォーマンスを向上し、柔軟性を高めるために、新しいイベントがいくつか Microsoft SharePoint Foundation 2010 開発者プラットフォームに追加されました。SharePoint Foundation 2010 の新しいイベントの通知を含むすべての SharePoint Foundation のイベントのカタログについては、「SharePoint Foundation イベントのカタログ」を参照してください。
リストに対する新しい Add イベントと Delete イベント
SharePoint リスト (つまり SPList オブジェクト) に対する新しい Add イベントが 2 つ提供されました。
Add イベントは、SPListEventProperties を使用できるプロパティを使用します。このイベントが発生するのは、新しいリストが作成されるときです。
ListAdding イベントを使用すると、ユーザーはリストの作成を取り消すことができます。ただし、サイト テンプレートまたはサイト定義を準備しているときはリストの作成を取り消さないことをお勧めします。また、ListAdding イベントは、Microsoft.SharePoint.Deployment 名前空間内で API を使用して復元を行うときに発生することにも注意してください。
ソリューションを展開する場合、展開中に発生するイベントを無視できるようにするオプションを設定できます。ListAdding イベントは、再利用されたリストを復元するときにも発生します。この動作は SharePoint リストの通常の動作と一致します。SPListEventProperties には、TemplateId と FeatureId の 2 つのプロパティが追加されました。これらはパラメーターとして渡されるため、ListAdding イベントを使用する開発者は作成されるリストの種類を確認できます。
これらの Add イベントに加えて、2 つの Delete イベントも SharePoint リストに追加されました。
これらの Delete イベントを使用すると、リストの削除操作を、その操作の任意の時点で取り消すことができます。削除操作を取り消すと、インターフェイス経由でエラー メッセージが戻され、例外がスローされます。Delete イベントは、リストが再利用されるときにも (リスト自体は技術的に削除されなくても) 発生します。この動作は、SharePoint リスト アイテムの通常の動作と一致します。
Delete イベントは、上位のオブジェクトが削除される場合に、狭い範囲に適用されたオブジェクトでは発生しません。たとえば、Delete イベントが Web サイトのレベルで発生した場合、それよりも狭い範囲に適用されたイベント (個々のリスト イベントなど) は発生しません。この理由から、削除イベントのコードを作成する場合、イベントの範囲を適切に把握しておくことが重要です。スタンドアロンのリスト フォルダー (Web サイト内の Lists フォルダーなど) を削除する場合、トラップ可能なイベントがないため、List イベントは発生しません。
SharePoint サイトに対する新しい Add イベント
SharePoint サイトを作成するときに、詳細な制御と高い柔軟性を提供する他の新しいイベントがあります (SPWeb インスタンス)。ただし、SharePoint サイトを作成するには、2 つの独立した手順を実行する必要があります。まず、サイトをサイト コレクションに追加 (SPSite インスタンスを作成) します。この時点で、サイト自身は、一連のプロパティを持つほぼ空の状態のフォルダーです。次に、2 番目の手順で、サイトを準備 (つまり、Web テンプレートを適用) すると、リスト、ファイル、およびその他のコンテンツ オブジェクトなどのアイテムが、指定されたサイト定義に基づいてインスタンス化されて整理されます。
重要なアクティビティのほとんどは準備段階で発生します。したがって、これらの新しいサイト関連イベントはサイトの追加と準備のプロセスに関連付けられます。
WebAdding イベントは、新しい Web サイトが作成される前に発生します。したがって、作成操作が取り消されると、SharePoint サイトは作成されず、準備プロセスは開始されません。WebAdding イベントを使用して、条件に基づく検証などのアクティビティを実行できます。たとえば、URL が有効かどうか、またサイトを作成しているユーザーに適切な資格情報があるかどうかを検証できます。
WebProvisioned イベントは、Web が完全に準備され、準備プロセスが完了した後に発生します。このイベントは、同期モードまたは非同期モードで動作するように設定できます。このイベントを使用して、開発操作の最終処理を行います。たとえば、Web パーツをサイトに追加します。
新しい同期の After イベント
同期の after イベントは、非同期イベントによって部分的にのみ満たされているニーズを満たすように設計されています。つまり、コンテンツ データベースに送信され、ユーザーが実際に確認する前のリスト アイテムに作用する機能です。この同期の after イベントが発生すると、イベントが発生した後にイベント ハンドラーが制御を放棄します。
注意
before イベントの既定の同期動作は同期です。after イベントの既定の同期動作は非同期です。
Synchronization と呼ばれる、SPEventReceiverDefinition 基本クラスの新しいプロパティも利用可能になりました。このプロパティには、SPEventReceiverSynchronization 列挙値の取得と設定を行う get メソッドと set メソッドがあります。この列挙では、Default と呼ばれる値が提供されており、下位互換性がサポートされます。
関連項目
概念
SharePoint Foundation 2010 のイベント モデルの改良