3

サイトコア Web アプリケーションの OnItemSaved イベントで、アイテムが EventDisabler コンテキストで保存されているかどうかを検出したいと考えています。例として、以下のようにアイテムを編集すると…

using (new EventDisabler())
{
    item.Editing.BeginEdit();
    // do edits
    item.Editing.EndEdit();
}

以下のメソッドでは、項目が EventDisabler コンテキストで編集されていることを識別したいと考えています。

protected void OnItemSaved(object sender, EventArgs args)
{
     // detect EventDisabler() context
}

また、アイテムを保存することもできitem.Editing.EndEdit(true);ます。これは、EventDisabler コンテキストを相互に使用することを意味します。それが適用される方法で、EventDisabler() を検出したいだけです。EventDisabler() を検出するにはどうすればよいですか?

4

1 に答える 1

6

クラスには静的プロパティがありますIsActiveEventDisabler

EventDisabler.IsActive

これは、コンテキストtrueにいるたびに返されます。EventDisabler

EventDisablerアクティブなコンテキストにいるときは、item:savedevent が呼び出されないことを覚えておく必要があります( item.Editing.EndEdit(true).

EventDisable.IsActiveで状態をチェックするitem:savingと、 の状態がわかりますが、 ( Mark Cassidyが気づいたように) イベントEventDisablerでこれをチェックするのは無意味です。item:saved

于 2013-10-03T10:53:57.110 に答える