【问题标题】:NServiceBus Configuration Through Code通过代码配置 NServiceBus
【发布时间】:2016-01-29 10:55:26
【问题描述】:

我正在尝试创建一个发布订阅外观,它在内部使用 NServiceBus 来实现 PubSub 功能。我在使用 NServiceBus 时遇到的问题之一是很多配置都是通过接口完成的。例如,发布者将实现 IWantToRunAtStartup。该发布者的端点将实现 IConfigureThisEndpoint 和 AsA_Publisher。

这是一个非常酷的功能,“流畅”并且使代码易于阅读和理解。

但是它很难创建一个外观。例如,实现 IWantToRunAtStartup 的基类将要求所有超类引用 NServiceBus.Host。

当然,有一个引用 NServiceBus 的要求完全打破了拥有外观的想法。在那一点上,立面的意义何在?

NServiceBus 是否可以将类型配置为不使用接口技术的端点、发布者、订阅者和消息?如果是这样,有人可以向我指出该文档(或者,甚至更好的示例?)

【问题讨论】:

    标签: c# nservicebus


    【解决方案1】:

    接口 IConfigureThisEndpoint、AsA_Publisher 和 IWantToRunAtStartup 不是设置发布/订阅所必需的。

    如果您不在 NServiceBus.Host.exe 中托管您的端点,您需要做的就是告诉 NServiceBus 它应该如何存储订阅 - 在内存中、使用 msmq、关系数据库或在 RavenDB 中。只需选择适当的方法作为 Configure.With()... 初始化代码的一部分。

    从 3.0 版开始,NServiceBus 支持定义对 NServiceBus 没有任何依赖关系的消息类型 -​​ 请参阅 http://docs.particular.net/nservicebus/messaging/unobtrusive-mode

    在任何情况下,您的订阅者中将处理正在发布的事件的代码都需要实现 NServiceBus 接口 IHandleMessages。

    一般来说,我会说 NServiceBus 在理念上与其他服务总线有很大不同,无论有没有门面,从一个服务总线移动到另一个服务总线都不会容易得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 2019-02-14
      • 2017-11-06
      • 2022-12-11
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      相关资源
      最近更新 更多