NServiceBus.Host - 如何将端点实例添加到我的 IoC 容器
NServiceBus.Host - How do I add the endpoint instance to my IoC container
我正在尝试将解决方案从 NServiceBus 5 升级到 6。目前,我们正在将 IBus 注入服务 class,以便该服务可以根据需要向总线发送消息。现在 IBus 在 6 中不再可用,我如何在使用 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);
但是,它后面紧跟一条注释,指出“这仅在自托管且不使用 NServiceBus.Host 时才有可能。”
在总线启动后,使用 IWantToRunWhenEndpointStartsAndStops
实现为您的服务 class 注入 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,这样您可以更好地控制端点的生命周期。
我正在尝试将解决方案从 NServiceBus 5 升级到 6。目前,我们正在将 IBus 注入服务 class,以便该服务可以根据需要向总线发送消息。现在 IBus 在 6 中不再可用,我如何在使用 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);
但是,它后面紧跟一条注释,指出“这仅在自托管且不使用 NServiceBus.Host 时才有可能。”
在总线启动后,使用 IWantToRunWhenEndpointStartsAndStops
实现为您的服务 class 注入 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,这样您可以更好地控制端点的生命周期。