2014-02-25 68 views

回答

0

您可以使用靜態DataEvents<T> class,其中有一個可以掛接的事件OnStoreChanged

示例使用從API頁:

DataEvents<IMyDataType>.OnStoreChanged += new StoreEventHandler(DataEvents_OnStoreChanged); 

... 

void DataEvents_OnStoreChanged(object sender, StoreEventArgs storeEventArgs) 
{   
    if (!storeEventArgs.DataEventsFired) 
    { 
     // an external update event happened - DataEvents_OnBeforeAdd not fired 
     // here a complete cache flush could be done 
    } 
} 

如果你關心頁公開你將不得不使用DataEvents<IPage>並檢查StoreEventArgs的PublicationScope應該告訴你,這是否是一個出版事件或沒有。

DataEvents<T>.OnStoreChanged文檔:

此事件被更改後激發了發生在複合體C1數據存儲。這可能是原子操作或對底層數據存儲的較大更改。 StoreEventArgs類以廣義的術語來描述改變,包括指示詳細數據事件是否已被提出的標誌。您可以將此事件用作對數據更改(如清除緩存)作出反應的簡單方法,或者可以將此事件與原子數據事件(添加,刪除,更新)混合,以使構建成爲更高級的緩存。您應該監聽此事件以支持跨多個服務器進行擴展,因爲此事件旨在在另一臺服務器發生更改時發出信號。在這種情況下,詳細的數據事件不會在其他機器上觸發。

如果你關心什麼樣的數據在事件被改變,你必須使用DataEvents<T>類的其他事件,如OnAfterUpdate,並從DataEventArgs此信息。