Design patterns IoC、容器和NServiceBus混淆

Design patterns IoC、容器和NServiceBus混淆,design-patterns,ioc-container,nservicebus,Design Patterns,Ioc Container,Nservicebus,这是我的设置 温莎城堡是我的容器 NServiceBus本身在内部使用自己的容器,默认情况下是Spring 我正在实现PubSub配置 好的,如果我有我的Bus.Publish在我的IWantToRunAtStartup类中发生,那么一切都很好。作为对Run()的测试,我们可以启动一个计时器,它将进入一个服务风格的循环 但是,如果我想从我的应用程序中提取NServiceBus并启动我的应用程序,该怎么办 new CustomPulisherClass().Notify(ISomeMessag

这是我的设置

  • 温莎城堡是我的容器
  • NServiceBus本身在内部使用自己的容器,默认情况下是Spring
  • 我正在实现PubSub配置
好的,如果我有我的Bus.Publish在我的IWantToRunAtStartup类中发生,那么一切都很好。作为对Run()的测试,我们可以启动一个计时器,它将进入一个服务风格的循环

但是,如果我想从我的应用程序中提取NServiceBus并启动我的应用程序,该怎么办

new CustomPulisherClass().Notify(ISomeMessage msg);
在这种情况下,如何实现CustomPublisherClass


我的困惑来自这样一个事实:NServiceBus已经作为服务运行,它已经“启动”。如何获取总线对象的正确实例?

您应该将NServiceBus配置为使用Windsor作为内部容器:


如果您这样做,您的Windsor实例中将提供正确的IBU,这是什么意思?我只需要获取容器的当前实例,然后转到.Resolve()?不必在我的windsor.config中配置IBU?还有,Andreas,当NServiceBus在一个单独的进程下运行时,该如何工作。。。i、 e.服务?这行得通吗?是的,总线可以使用。请解决另一个问题:您总是使用与您自己的代码在同一进程中运行的总线实例进行通信。例如,如果您有一个web应用程序将命令发送到托管在NSB通用主机中的后端服务,那么您也可以在web应用程序中配置NSB并执行总线。Send(new WhateverMessage())Inshort:NSB始终在与总线交互的代码相同的过程中运行这有帮助吗?是的,很好,谢谢andreas。我想我有点困惑,但我只是想得到其他人的确认。好东西!