2013-07-27 96 views
0

我有一個模塊化的應用程序。每個模塊都是解決方案中的單獨項目,並且模塊不能相互引用。我想添加一個模塊可以訂閱來自其他模塊的事件的系統。模塊化事件處理

例如說我有一個博客模塊和一個菜單模塊。當我刪除博客模塊中的帖子時,我想也刪除菜單模塊中相應的菜單項。

我會很感激,如果你能幫助。請讓我知道如果您需要更多信息,我很樂意提供。謝謝

+0

有沒有在某個級別的數據庫?您可以使用事件系統創建一個存儲庫。 (雖然我不確定,在你說了什麼之後,爲什麼一個模塊依賴於另一個模塊) –

+0

你使用什麼.Net版本? – Vasiliy

+0

@ Vasiliy:版本4.5 – nfplee

回答

3

讓您的模塊將其事件發佈到某種全局事件隊列中。該隊列中的事件消息應該有一些標記,指示事件從哪個模塊發起。

任何模塊都感興趣的另一個模塊的事件,則可以訂閱一個全球性的事件分銷商,從那裏要麼接受

  • 的所有事件,於是它具有基於標籤過濾器本身,或
  • 來自一組有限模塊的事件,其ID必須在訂閱全球事件分發者時傳遞。
+0

謝謝,但你能提供一些示例代碼。這對我來說是新的。你會推薦使用Prism作爲@mot建議還是應該推出我自己的解決方案? – nfplee

+0

@nfplee:不,對不起,我認爲你的問題太寬泛,無法提供一些特定的示例代碼。這是沒有什麼可以用兩行代碼解決的,或者至少會有很多可能的變化。至於棱鏡,我從來沒有聽說過它,所以我不知道。 –

+0

好的謝謝。將做一些進一步的研究,看看哪個解決方案看起來最好 – nfplee

3

我建議你使用棱鏡的EventAggreator,它完全適合你的情況。

+0

感謝這看起來很有前途。我有一個快速閱讀,但看起來我不得不做更多的研究之前,我可以理解這將如何爲我的應用程序工作。 – nfplee

+0

或只是基於MEF的解決方案 – Vasiliy