如何设置 rebus 来处理来自第三方供应商的消息
How to setup rebus to handle messages from third party vendor
我们目前使用 Rebus,我们有一个共享项目来保存命令消息(有效载荷等)。
客户端和总线项目都引用了这个共享的 "messages" 项目。当客户端向总线发送消息时,总线知道如何处理它,因为它引用了相同的命名空间:
为了说明,我们有 3 个项目:
- project.rebus.bus
- project.rebus.messages(命令消息)
- project.rebus.client
解决方案 1 - 总线
- project.rebus.bus
PingHandler<Ping>
- project.rebus.messages(Ping 消息)
解决方案 2 - 客户端
- project.rebus.client
bus.send(new Ping {...})
- project.rebus.messages(Ping 消息)
该方案有效,因为 project.rebus.bus 和 project.rebus.client 共享相同的 project.rebus.messages,一切顺利
我们如何设置 project.rebus.bus,当它需要处理来自第三方供应商的消息时,我们无法共享 project.rebus.messages 项目?
可能吗?
示例:
我们的rebus巴士-巴士
- project.rebus.bus
ThirdPartyTestHandler<ThirdPartyTestMessage>
- project.rebus.messages(ThirdPartyTestMessage 消息)
第三方供应商 - 客户
- SomeCompanyOutThere.rebus.client
bus.send(new ThirdPartyTestMessage {...})
- SomeCompanyOutThere.rebus.messages(ThirdPartyTestMessage 消息)
谢谢!
消息程序集作为 NuGet 包分发的项目很常见。
这样,"owner" 消息类型(即,如果我们正在谈论的是命令,则带有处理程序的应用程序,或者如果是我们正在谈论的事件,则发布事件的应用程序) 可以在其解决方案中包含项目,然后可以从中构建 NuGet 包。
所有其他应用程序(然后在这种特定关系中成为 "clients")然后可以包含该 NuGet 程序包,这样就可以访问消息类型。
如果您打算将其用作消息,我建议您对第 3 方程序集执行相同的操作。
我们目前使用 Rebus,我们有一个共享项目来保存命令消息(有效载荷等)。
客户端和总线项目都引用了这个共享的 "messages" 项目。当客户端向总线发送消息时,总线知道如何处理它,因为它引用了相同的命名空间:
为了说明,我们有 3 个项目:
- project.rebus.bus
- project.rebus.messages(命令消息)
- project.rebus.client
解决方案 1 - 总线
- project.rebus.bus
PingHandler<Ping>
- project.rebus.messages(Ping 消息)
解决方案 2 - 客户端
- project.rebus.client
bus.send(new Ping {...})
- project.rebus.messages(Ping 消息)
该方案有效,因为 project.rebus.bus 和 project.rebus.client 共享相同的 project.rebus.messages,一切顺利
我们如何设置 project.rebus.bus,当它需要处理来自第三方供应商的消息时,我们无法共享 project.rebus.messages 项目?
可能吗?
示例:
我们的rebus巴士-巴士
- project.rebus.bus
ThirdPartyTestHandler<ThirdPartyTestMessage>
- project.rebus.messages(ThirdPartyTestMessage 消息)
第三方供应商 - 客户
- SomeCompanyOutThere.rebus.client
bus.send(new ThirdPartyTestMessage {...})
- SomeCompanyOutThere.rebus.messages(ThirdPartyTestMessage 消息)
谢谢!
消息程序集作为 NuGet 包分发的项目很常见。
这样,"owner" 消息类型(即,如果我们正在谈论的是命令,则带有处理程序的应用程序,或者如果是我们正在谈论的事件,则发布事件的应用程序) 可以在其解决方案中包含项目,然后可以从中构建 NuGet 包。
所有其他应用程序(然后在这种特定关系中成为 "clients")然后可以包含该 NuGet 程序包,这样就可以访问消息类型。
如果您打算将其用作消息,我建议您对第 3 方程序集执行相同的操作。