模块化事件处理

时间:2013-07-27 17:25:39

标签: c# events event-handling

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

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

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

2 个答案:

答案 0 :(得分:3)

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

任何对另一个模块的事件感兴趣的模块都可以订阅全球事件发布者,从那里接收

  • 所有事件,因此必须根据标记过滤自身,或
  • 只是来自一组有限模块的事件,其ID必须在订阅全球事件发布者时传递。

答案 1 :(得分:3)

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