2013-04-27 46 views
0

新來NServiceBus什麼時候NServiceBus引導IProvideConfiguration?

我花了一點一窺NServicceBus它會在其自身的內部DI容器IProvideConfiguration,但我一直沒能找出當引導/初始化過程將執行NServiceBus配置實際上搜索標記界面?

此外,我該如何控制過程?例如。只能在特定的程序集中進行掃描?

你也可以重寫這個掃描過程,並在你自己的容器上註冊它,而不是覆蓋你提供的實例嗎?

回答

0

這需要更多的調查,但它會觸發另外調用.Start()配置順序這是一個惱人的疏忽 - 配置過程中的操作順序應該是無關緊要的。如果首先聲明你的appsettings,爲什麼會比連接字符串聲明,反之亦然;但是它在NServiceBus中。

所以如果例如,如果您在開始時撥打.UnityBuilder(myContainer),您在myContainer上註冊的將用於您的訂閱,傳奇持久性和任何其他此類配置。

當然,爲了保持良好的OSS傳統,文檔應該保持在零到最低的最低限度 - 所以他們可以賣掉「consulation」服務。如果只有人記錄的許多配置方法的前後條件,那麼本來會節省我幾個小時 - 但沒有。

+0

的確,執行順序依然很重要,並且給幾個開發人員帶來了很多痛苦。開發團隊已經知道這個問題,並且已經解決了一些問題。 – 2013-06-24 18:59:49

1

來自NServiceBus的所有約定接口在裝配掃描過程中在With()子句中被拾取。默認情況下,這將搜索當前appdomain目錄中的所有程序集。您可以通過使用With()重載之一,i.ex來限制應該掃描的內容。 Configure.With(AllAssemblies.Except(「Legacy.dll」)。因爲我知道程序集掃描本身是不可插拔的。

+0

謝謝丹尼爾,這是很好的知道。 – Alwyn 2013-04-29 02:35:14

相關問題