2014-08-28 184 views

回答

0

只是对@Ruud面包车Falier的的答案扩大,值得注意的是,EventDisabler,像SecurityDisable,继承从IDisposable。因此,您可以创建一个属性或局部变量,该属性或局部变量是EventDisabler,并且在变量或属性初始化之前,Sitecore事件将被禁用,直到调用Dispose()方法。

例如,在以下类中,从调用Foo()方法开始,直到调用Bar()方法时,事件都将被禁用。

public class SomeClass 
{ 
    private EventDisabler _eventDisabler; 

    ... 

    public void ToggleEventDisabler(bool eventDisablerOn) 
    { 
     _eventDisabler = eventDisablerOn ? new EventDisabler() : null; 
    } 

    public void Foo() 
    { 
     ToggleEventDisabler(true); //turn on the event disabler 

     ...do stuff... 
    } 

    public void Bar() 
    { 
     ...do stuff... 

     if (_eventDisabler != null) 
     { 
      _eventDisabler.Dispose(); 
     } 
    } 
} 
相关问题