2010-05-19 42 views
4

嗨,这里是我的设置的IoC,容器和NServiceBus混乱

  • 温莎城堡是我的容器
  • NServiceBus本身就是使用它自己的容器内,Spring缺省
  • 我实现PubSub配置。

好吧,如果我的Bus.Publish发生在我的IWantToRunAtStartup类中,那么一切都很好。作为一个例子在Run()上的测试,我们可以启动一个计时器,它将进入一个Service样式循环。

但是,如果我想从我的应用程序抽象NServiceBus,并有我的应用程序何去何从:

new CustomPulisherClass().Notify(ISomeMessage msg); 

在这种情况下,我该如何实现CustomPublisherClass。

我的困惑来自NServiceBus已经作为服务运行的事实,它已经被“启动”了。如何获取Bus对象的正确实例?

欢呼

安迪

回答

3

应配置NServiceBus使用温莎作为内部容器:

http://sourceforge.net/apps/mediawiki/nservicebus/index.php?title=Additional_containers

如果你这样做了正确的下iBus将在温莎的实例可

+0

你是什么意思?我只需要获取当前容器的实例,然后去.Resolve ()?而不必在我的windsor.config中配置IBus? – andy 2010-05-19 06:48:45

+0

另外,Andreas,当NServiceBus在单独的进程下运行时,如何工作......即服务?可以工作吗? – andy 2010-05-19 23:38:15

+0

是的,总线可以使用.Resolve 不跟随你在另一个问:你总是使用与你自己的代码在同一个进程中运行的总线实例进行通信。例如 例如。如果你有一个webb应用程序向NSB通用宿主中托管的后端服务发送命令,你也可以在你的web应用程序中配置NSB并执行一个总线.Send(newWhateverMessage()) Inshort:NSB总是运行在相同作为您与公交车互动的代码进行处理 这有帮助吗? – 2010-05-20 08:50:28