2014-08-28 191 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(); 
     } 
    } 
} 
相關問題