如何设置 rebus 来处理来自第三方供应商的消息

How to setup rebus to handle messages from third party vendor

我们目前使用 Rebus,我们有一个共享项目来保存命令消息(有效载荷等)。

客户端和总线项目都引用了这个共享的 "messages" 项目。当客户端向总线发送消息时,总线知道如何处理它,因为它引用了相同的命名空间:

为了说明,我们有 3 个项目:

解决方案 1 - 总线

解决方案 2 - 客户端

该方案有效,因为 project.rebus.busproject.rebus.client 共享相同的 project.rebus.messages,一切顺利

我们如何设置 project.rebus.bus,当它需要处理来自第三方供应商的消息时,我们无法共享 project.rebus.messages 项目?

可能吗?

示例:

我们的rebus巴士-巴士

第三方供应商 - 客户

谢谢!

消息程序集作为 NuGet 包分发的项目很常见。

这样,"owner" 消息类型(即,如果我们正在谈论的是命令,则带有处理程序的应用程序,或者如果是我们正在谈论的事件,则发布事件的应用程序) 可以在其解决方案中包含项目,然后可以从中构建 NuGet 包。

所有其他应用程序(然后在这种特定关系中成为 "clients")然后可以包含该 NuGet 程序包,这样就可以访问消息类型。

如果您打算将其用作消息,我建议您对第 3 方程序集执行相同的操作。