Asp.net-Mvc
如何在 3 層 Web 應用程序(ASP.NET MVC)中使用 Autofac?
我可以找到的範例使用兩層架構,其中控制器直接使用數據訪問層中的儲存庫類。見這里或這裡。
如果您有使用這些組件的服務或業務邏輯層,您會在哪裡註冊數據訪問層的組件?理想情況下,不應從使用者界面層引用數據訪問層,對嗎?所以 Application_Start 不是正確的地方。
有什麼更好的方法?
謝謝!
必須知道您要使用哪些實現。通常有 3 種方法可以完成此操作:
- 在編譯時這是 Autofac 使用的
- 在執行時從 Castle Windsor 可以執行的預定義配置文件
- 在執行時使用動態配置
使用 Autofac,您有幾個選擇
- 在 Application_Start 中將所有內容連接在一起
- 將責任交給另一個實現工廠模式並註冊所需組件的組件。
對於#2,我將實現類似於 IContainer 介面的東西,以便您的 IoC 框架與您的系統鬆散耦合。然後讓您的數據訪問實現使用該介面註冊所需的組件。