模块之间没有引用关系,如何在不同的模块间协调事件的处理呢?如何响应不同模块所发布的事件呢?
SailingEase WinForm Framework 使用事件聚合器统一管理事件的发布与订阅。

SailingEase WinForm Framework 提供了 IEventAggregator 事件聚合服务,模块可以使用该服务发布或订阅事件,并通过事件参数传递数据,事件的定义可做为已知类型库放在应用程序的基础架构中进行实现。
你可以通过构造函数注入来获得 IEventAggregator :

也可以使用 IUnityContainer 来获得 IEventAggregator :

在获得 IEventAggregator 后,你可以使用 Publish 方法来发布事件,并通过泛型参数指定事件的类型:

要响应事件,通过 Subscribe 方法过时行订阅: