NServiceBus.Host - 如何将端点实例添加到IoC容器中

时间:2016-10-31 18:08:43

标签: nservicebus

我正在尝试将解决方案从NServiceBus 5升级到6.目前,我们正在将IBus注入服务类,以便服务可以根据需要向总线发送消息。现在,在6中不再提供IBus,如何在使用NServiceBus.Host创建端点时注入端点实例,NServiceBus.Host本身将启动此端点?

https://docs.particular.net/samples/hosting/multi-hosting/底部提供了一个示例:

var endpointConfiguration = new EndpointConfiguration("Samples.MultiHosting.Instance1");
endpointConfiguration.UseSerialization<JsonSerializer>();
endpointConfiguration.EnableInstallers();
endpointConfiguration.UsePersistence<InMemoryPersistence>();
endpointConfiguration.SendFailedMessagesTo("error");
return Endpoint.Start(endpointConfiguration);

然而,紧接着是一个注释,表示&#34; 只有在自托管且不使用NServiceBus.Host 时才有可能。&#34;

1 个答案:

答案 0 :(得分:7)

在总线启动后,使用IWantToRunWhenEndpointStartsAndStops实现为服务类注入IMessageSession

以下是NServiceBus.Host升级指南中的相关部分: https://docs.particular.net/nservicebus/upgrades/host-6to7#iwanttorunwhenendpointstartsandstops-interface-in-version-7-of-nservicebus-host

另一种方法是切换到NServiceBus Windows Service Bootstrap,而不是使用NServiceBus.Host,您可以更好地控制端点的生命周期。