我有兩個相關的(對於這個問題)項目和其他一些項目的解決方案;我應該怎麼做Ninject 2+注射(以及如何安排我的模塊?)
- 具有其他幾個項目使用的功能的類庫。
- ASP.NET MVC應用程序。
我的問題基本上是我應該做的IoC和Ninject 2,考慮...
- 類庫需要一些DI愛情,除其他事項外,其中需要web請求特定會話存儲庫類對象(認爲工作單位)。
- MVC應用程序需要DI,因爲Ninject 2基本上繼承自NinjectHttpApplication。
- 類庫的單元測試需要注意這個以注入一組不同的存儲庫。
- Web應用程序的單元測試需要注入出於同樣的原因。
我在這裏畫了一個心理角落,因爲我只看到三個選項開始。 DI類庫中,DI在Web應用程序,或兩者兼而有之,但也有問題,每個:
- 因爲MVC應用程序需要從NinjectHttpApplication繼承我不能做DI 只類庫開始。
- 我只能在MVC應用程序中執行DI操作 - 畢竟,其他庫使用的是類庫,而MVC應用程序無論如何也不應該太瞭解庫的內部知識。
- 我想這是我能看到的唯一出路:兩個項目的獨立IoC。類庫和MVC應用程序每個都有自己的IoC設置,並且爲他們的東西做DI,而沒有真正關心對方。
有沒有人有一些「最佳實踐」或指導方針如何做到這一點?我無法想象我是第一個在這種情況下結束的人,並且很高興知道這種「正確」方法是什麼...
謝謝!
相關:http://stackoverflow.com/questions/5267525/dal-bll-gui-composition-root-how-to-setup-di-bindings – 2012-08-25 07:05:15
重複一些值得挖掘的意見完整性,如果你真的試圖得到一個完整的見解http://stackoverflow.com/questions/5733591/best-location-for-fluent-ioc-configuration-modules-currently-trying-ininject – 2012-08-25 07:14:09