2016-09-28 72 views
1

嘗試使用EasyNetQ配置Simple Injector DI庫。什麼是實現這一目標的正確方法?如何在EasyNetQ上使用Simple Injector?

該項目包含NuGet軟件包'EasyNetQ.DI.SimpleInjector'。添加了如InjectionExtensions.RegisterAsEasyNetQContainerFactory(container);的代碼。但是,當試圖創建像Bus = RabbitHutch.CreateBus(<ConnectionString>)這樣的總線時。它拋出一個錯誤,如

的容器不能在第一次調用的GetInstance,GetAllInstances後更改和驗證

如果我註冊總線對象,具有簡單的注射器狀

container.Register<IBus>(() => RabbitHutch.CreateBus(
    "username=guest;password=guest;virtualHost=chidemo;host=localhost"), 
    Lifestyle.Singleton); 

然後使用構造函數注入它然後它工作正常。但是,它看起來不是'EasyNetQ.DI.SimpleInjector'軟件包的正確使用。

任何人都可以提出正確的做法或共享工作代碼片段?

@dotnetjunkie @gpauls:如果您可以提供專家意見,那麼這將是偉大的!

回答

1

我沒有寫的包,但如果這樣的:

container.Register<IBus>(() => RabbitHutch.CreateBus(
    "username=guest;password=guest;virtualHost=chidemo;host=localhost"), 
    Lifestyle.Singleton); 

適合你這似乎是對我完全合法的解決方案。

這裏有一個單元測試,但似乎只嘲笑下iBus,不能實例吧: https://github.com/EasyNetQ/EasyNetQ/blob/master/Source/EasyNetQ.DI.Tests/SimpleInjectorAdapterTests.cs

可惜EasyNetQ不具有獨立配置內置/建造記步驟DI建設,使集裝箱需求以支持組件的運行時註冊。

如果它不爲你工作不知何故,請提交這裏的一個問題: https://github.com/EasyNetQ/EasyNetQ/issues

也許提到「gpauls」,他貢獻了SimpleInjector包,他可能有一個工作樣品溶液。

+1

@Sud,如果您在創建的問題中提及'dotnetjunkie',Simple Injector背後的主要開發人員也可以關注該問題。 – Steven

+0

@Wiebe:將公交車註冊爲單身人士正在爲我工​​作。我很想知道如何使用NuGet包。感謝您的答覆! – Sud

+0

@Steven:我已更新問題。希望創造者會迴應:) – Sud

相關問題