0

可能重複:
Ioc/DI - Why do I have to reference all layers/assemblies in entry application?DI/IoC的MVC大會參考的問題和抽象

我已經決定建立使用Autofac作爲DI容器新的MVC 3應用程序。

因爲我的所有容器配置都是在MVC項目中完成的,所以它強制引用所有層,例如數據,理想的網站項目應該不知道。

有沒有簡單的方法將其移動到單獨的「結構」類庫?我遇到的問題是,我無法在Fabric項目中配置控制器,因爲它會導致Fabric和MVC項目之間的循環引用。

我明白,引用僅用於配置,但沒有引用將確保調皮的開發人員不會直接引用類。

在相關說明中,任何人都沒有任何關於抽象他們的DI容器的感受 - 或者這只是越來越多!作爲一個經驗法則,我認爲將第三方程序集包裝在這個級別是一種很好的做法?

在此先感謝,

湯姆。

回答

4

由於我的所有容器配置都是在MVC項目中完成的,因此它會強制引用所有圖層,例如,數據,這在理想情況下是web 項目應該不知道的。

如果您不參考這些圖層,那麼您如何期望相應的程序集在運行時在bin文件夾中?您不應該擔心在MVC應用程序中引用這些圖層。

但沒有引用將確保調皮的開發人員不會 開始直接引用類。

你應該教你的開發者的最佳做法。

+0

這就是爲什麼我想到有一個Fabric類庫引用我的圖層,然後由Web項目引用它,這會導致程序集在運行時被複制到bin文件夾。 感謝您的建議,因爲它聽起來像只是不需要。 – 2012-03-07 16:50:16