本文介紹了所謂的「域事件」一個偉大的格局:http://www.udidahan.com/2009/06/14/domain-events-salvation/排隊域事件
這種模式不過是評論27用戶安迪強調的一個重大缺陷:如果交易失敗,我們不希望我們的域名事件執行。因此,我們需要創建某種排隊機制。
不幸的是,這聽起來像是要大量複雜化本來應該簡化系統的技術。
有誰知道排隊域事件的一些很好的例子或討論,特別是與NHibernate集成的解決方案嗎?
本文介紹了所謂的「域事件」一個偉大的格局:http://www.udidahan.com/2009/06/14/domain-events-salvation/排隊域事件
這種模式不過是評論27用戶安迪強調的一個重大缺陷:如果交易失敗,我們不希望我們的域名事件執行。因此,我們需要創建某種排隊機制。
不幸的是,這聽起來像是要大量複雜化本來應該簡化系統的技術。
有誰知道排隊域事件的一些很好的例子或討論,特別是與NHibernate集成的解決方案嗎?
我弄明白瞭如何做到這一點:祕密就是NHibernate的ITransaction的RegisterSynchronization方法。
作爲一個例子,這裏是如何我可能會發郵件到只有當事務被提交客戶:
public class NotifyCustomerEmail
{
private void MailMessage { get; set; }
public void SendAsyncOnceTransactionCommits()
{
if (MailMessage == null)
ComposeMailMessage();
NHibernateSessionManager
.CurrentSession
.Transaction
.RegisterSynchronization(new SendEmailSynchronization(this.MailMessage));
}
}
正在思考同一條線,但是你的方法是清潔器 –
的[凡提高持久性依賴域事件可能重複 - 服務,庫,或UI?](http://stackoverflow.com/questions/5886174/where-to-raise-persistence-dependent-domain-events-service-repository-or-ui) – cbp