Gra*_*eit 13 asp.net-mvc dependency-injection inversion-of-control
我与refrences如本描述去一个三层应用程序的答案:
DAL with Repositories -> BLL with services and IRepository <- Asp.net mvc-app
Run Code Online (Sandbox Code Playgroud)
为了让这种依赖注入运行,我看到了几个选项:
1.从web-app添加对DAL的引用,以便能够在应用程序启动时设置绑定.
2.使用具有xml配置的容器
(3.使用反射加载dal-assembly并查找类型)
选项1.很简单,也可以将DAL.dll复制到bin但是我突然重新引入了我努力摆脱的引用.现在可以直接访问存储库.选项2和3似乎不必要地复杂.
没有其他办法吗?
Mar*_*ann 15
将ASP.NET MVC应用程序拆分为两个:
生成的分层看起来像这样:
Mark Seemann的回答给了我这个变体的想法:
DAL with Repositories -> BLL with services and IRepository <- Asp.net mvc-app
^------------------------^--------- Composition Root <-------´
Run Code Online (Sandbox Code Playgroud)
这是为了说明不是让Web项目引用DAL,而是引用一个引用DAL和BLL的单独的Composition Root项目.composition-root-project有一个类,有一个定义绑定的方法.它提供了以下额外好处:
我没有看到任何大的缺点.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3862 次  |  
        
|   最近记录:  |