0

我有一个模块化的应用程序。每个模块都是解决方案中的一个单独项目,并且模块不能相互引用。我想添加一个系统,其中一个模块可以订阅来自其他模块的事件。

例如说我有一个博客模块和一个菜单模块。当我删除博客模块中的帖子时,我还想删除菜单模块中的相应菜单项。

如果您能提供帮助,我将不胜感激。如果您需要更多信息,请告诉我,因为我很乐意提供。谢谢

4

2 回答 2

3

让您的模块将它们的事件发布到某种全局事件队列中。该队列中的事件消息应该有一些标记,指示事件源自的模块。

任何对另一个模块的事件感兴趣的模块都可以订阅一个全局事件分发器,它将从那里接收

  • 所有事件,因此它必须根据标签过滤自己,或者
  • 仅来自一组有限模块的事件,其 ID 必须在订阅时传递给全局事件分发器。
于 2013-07-27T17:31:19.133 回答
3

我建议您使用 Prism 的EventAggreator,它非常适合您的场景。

于 2013-07-27T18:10:08.280 回答