NServiceBus通过代码配置

时间:2012-05-25 17:01:38

标签: c# nservicebus

我正在尝试创建一个Publish Subscribe Facade,它在内部使用NServiceBus来实现PubSub功能。我使用NServiceBus执行此操作的一个问题是,许多配置都是通过接口完成的。例如,Publisher将实现IWantToRunAtStartup。该发布者的端点将实现IConfigureThisEndpoint和AsA_Publisher。

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

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

当然,要求引用NServiceBus完全打破了拥有立面的想法。那时门面有什么意义?

NServiceBus是否有办法将类型配置为不使用接口技术的端点,发布者,订阅者和消息?如果是这样,有人会指出我的文档(或者更好的是,样本?)

1 个答案:

答案 0 :(得分: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在哲学上与其他服务总线不同,无论是否有外观,从一个服务总线移动到另一个服务总线都不会那么容易。