2010-01-15 55 views
1

是否有任何狀態的事件觸發機制在.NET(C#)或這將有助於我保持對事件的狀態發射有狀態三項賽

通過狀態我的意思是時觸發的事件的任何庫序列化到一個持久存儲。如果系統由於某種原因失敗,然後在回購時遇到序列化狀態,然後再次觸發。

我也在尋找計劃的事件 - 在這種情況下,有狀態事件可以委託給未來的時間,並保證當時被解僱,即使系統在任何時候都被買下。

在.net中是否有這樣的東西?

+1

這不是一個完整的答案,所以我會在這裏發佈,但是你知道MSMQ嗎?你可能想看看它。 –

回答

1

有一點學習曲線,但Windows Workflow Foundation(WF)完全是這樣做的。工作流程具有涉及提升或處理事件的活動,並且在工作流程的各個點上,整個工作流程的狀態可以被序列化。它支持開箱即用的SQL Server,但您可以擴展持久層。當工作流從序列化中恢​​復時,他們會從中斷的地方繼續工作。

值得注意的是,對WF當前版本的任何重大投資都不鼓勵,因爲它們在.NET 4.0中完全重寫了它,如果您沒有對當前版本進行投資,則應該先着手這方面的工作。

0

您可能可以使用PostSharp做些事情。

+0

怎麼樣?任何鏈接? –

+0

沒有具體的,嘗試谷歌搜索PostSharp。如果我沒有記錯的話,文檔相當簡單但很容易處理。沒有保證它會做你所需要的,但你可能能夠按摩它以適應你的需求。 – brian

1

雖然在技術上不是一種有狀態的事件機制,Windows Workflow Foundation包含許多功能來處理這些特定類型的情況。

特別是,它具有將工作狀態序列化到存儲,處理故障以及使用外部事件恢復長時間運行的進程的例程。