2010-05-19 53 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