Nservicebus 如何将端点实例添加到IoC容器中

Nservicebus 如何将端点实例添加到IoC容器中,nservicebus,Nservicebus,我正在尝试将解决方案从NServiceBus 5升级到6。目前,我们正在向服务类注入IBU,以便服务可以根据需要向总线发送消息。既然IBus在6中不再可用,那么在使用NServiceBus.Host创建端点时,如何注入端点实例,而NServiceBus.Host本身将启动此端点 下面是一个示例: var endpointConfiguration=newendpointconfiguration(“Samples.MultiHosting.Instance1”); endpointConfigu

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

下面是一个示例:

var endpointConfiguration=newendpointconfiguration(“Samples.MultiHosting.Instance1”);
endpointConfiguration.UseSerialization();
endpointConfiguration.EnableInstallers();
endpointConfiguration.UsePersistence();
endpointConfiguration.SendFailedMessageTo(“错误”);
返回Endpoint.Start(endpointConfiguration);

但是,它后面紧接着一个注释,指出“只有在自托管且不使用NServiceBus.Host时才可能这样做。”

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

以下是NServiceBus.Host升级指南中的相关部分:


另一种选择是切换到,而不是使用NServiceBus.Host,在那里您可以对端点的生命周期进行更多的控制。

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

以下是NServiceBus.Host升级指南中的相关部分:


另一种选择是切换到,而不是使用NServiceBus.Host,这样您可以更好地控制端点的生命周期。

感谢您的快速响应。我忘了在我的原始帖子中提到,我确实研究了是否可以获得在iwanttorunhenendpointstartsandstops.Start()中启动的端点。但是,我没有找到这样做的方法。在Start方法中传递的
IMessageSession
是端点,它将允许您访问
Send
Publish
。我必须重新编写我的服务类,以考虑注入
IEndpointInstance
IMessageSession
的可能性,但一切似乎都在按预期进行。谢谢谢谢你的快速回复。我忘了在我的原始帖子中提到,我确实研究了是否可以获得在iwanttorunhenendpointstartsandstops.Start()中启动的端点。但是,我没有找到这样做的方法。在Start方法中传递的
IMessageSession
是端点,它将允许您访问
Send
Publish
。我必须重新编写我的服务类,以考虑注入
IEndpointInstance
IMessageSession
的可能性,但一切似乎都在按预期进行。谢谢
var endpointConfiguration = new EndpointConfiguration("Samples.MultiHosting.Instance1");
endpointConfiguration.UseSerialization<JsonSerializer>();
endpointConfiguration.EnableInstallers();
endpointConfiguration.UsePersistence<InMemoryPersistence>();
endpointConfiguration.SendFailedMessagesTo("error");
return Endpoint.Start(endpointConfiguration);