【问题标题】:NServiceBus and Generic Event TypesNServiceBus 和通用事件类型
【发布时间】:2013-01-27 12:25:33
【问题描述】:

我正在使用 NCQRS 框架和 NServiceBus 3.3.4 做一些工作。我一直在努力解决一些订阅问题,据我所知,我的所有配置都是 100% 正确的。

经过一番挖掘,我注意到 Raven DB 订阅文档中保存的 MessageType 名称看起来有点奇怪。 NCQRS 框架将域事件包装在一个名为 EventMessage'1 的通用类型中。现在,当该消息保存在 scuscription 存储中时,它似乎删除了部分名称,见下文:

Ncqrs.Nsb.EventMessage`1[[Platform.Events.Category.CategoryRemoved, Version=1.0.0.0

我希望名称更符合以下内容:

Ncqrs.Nsb.EventMessage`1[[Platform.Events.Category.CategoryRemoved, Version=1.0.0.0]]

至少。

这可能是一个错误还是我做错了什么?我在 app.config 中的订阅显示如下:

  <add Messages="Ncqrs.NServiceBus.EventMessage`1[[Platform.Events.Category.CategoryRemoved, Platform.Events]], Ncqrs.NServiceBus" Endpoint="core.platform.domain" />

这让我发疯了!

【问题讨论】:

  • 它看起来像一个错误。您能否在 GitHub 中提出问题,如果可以,请给我们发一份重现?
  • 我对您使用 NCQRS 的原因很感兴趣。与您为不必要的抽象付出的代价相比,NCQRS 有什么好处?
  • 当项目开始时,我喜欢 NCQRS 强制您明确声明命令和事件的想法,这使得在涉及到它时如何修改系统更加明显。该项目是在 NSB 2 的早期开始的,当时 ICommand 和 IEvent 不明确。更不用说我想跳上 NCQRS 火车,这是一次很棒的学习经历。

标签: nservicebus ncqrs


【解决方案1】:

这不是错误,NServiceBus 不支持这一点,因为我们希望推动您使用更明确的消息协定。也许有一种方法可以将 NCQRS 配置为不需要“EventMessage”?

【讨论】:

  • 谢谢,我可能会在我的事件上实现 IEvent 并稍微修改 NCQRS NServiceBus 总线的东西。此外,这应该会大大简化单播消息映射配置。由于旧的“EventMessage'1”,这对 NCQRS 来说是一场噩梦。
  • @RossJones 你好,你能告诉我你是怎么解决的吗?我的意思是你究竟是如何修改 NSB 的 NCQRS 扩展的,我也面临同样的问题,我不知道我是否真的应该继续使用 NCQRS !!
猜你喜欢
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多