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

IsActive类中有一个静态属性EventDisabler

EventDisabler.IsActive

true每次您进入EventDisabler上下文时,这都会返回。

您需要记住,当您处于EventDisabler活动上下文中时,item:saved不会调用事件(调用item.Editing.EndEdit(true).

你可以检查EventDisable.IsActive状态item:saving,它会让你知道 的状态EventDisabler,但是检查这个item:saved事件(正如Mark Cassidy注意到的)是没有意义的。

于 2013-10-03T10:53:57.110 回答