我一直在阅读有关领域事件的内容,并看到了 Udi 实现的代码(http://www.udidahan.com/2009/06/14/domain-events-salvation/),Mike Hadlow(http://mikehadlow.blogspot。 com/2010/09/separation-of-concerns-with-domain.html),Jimmy Bogard 和 Jason Dentler 的实现。
总而言之,我喜欢事件的概念。
我的问题是我应该在哪一层添加这些组件。
我不会使用任何 BUS,所有事件都将以同步方式处理。
我猜接口 IDomainEvent , IEventHandler 应该进入Project.Core其余接口由所有项目保存和访问。
我认为 Dispatcher (这是一个静态类)应该进入Project.Infrastructure。
我将为领域事件的处理程序创建一个新项目。让我们说Project.EventHandlers。
我将使用 IoC(结构映射)来注册所有处理程序。
我看到的事件本身是基于商业语言的,因此我认为应该去Project.Domain实现所有聚合。
让我知道这是否是正确的方法。
我的另一个困惑是项目参考。应该Project.Domain引用Project.Infrastructure以便它可以使用静态Event Dispatcher。
Project.EventHandlers是否应该引用Project.Domain ,因为它需要知道可以处理哪些事件。
我计划在Project.EventHandlers中创建一个 StructureMap Registry 类,然后在 Global.asax 中引导。
如果之前已经讨论过,请指向我的链接。我无法通过 Google 搜索找到一个。