可能重复:
Ioc/DI - Why do I have to reference all layers/assemblies in entry application?
我决定使用Autofac作为DI容器构建一个新的MVC 3应用程序。
由于我的所有容器配置都是在MVC项目中完成的,因此它强制引用所有层,例如数据,理想情况下,Web项目应该不知道。
有没有一种简单的方法可以将其移到单独的“结构”类库中?我遇到的问题是我无法在Fabric项目中配置控制器,因为它会导致Fabric和MVC项目之间的循环引用。
据我所知,该引用仅用于配置,但没有引用将确保顽皮的开发人员不会直接开始引用这些类。
在一个相关的说明中,是否有人对抽取他们的DI容器有任何感觉 - 或者这只是被带走了!根据经验,我认为在这个级别包装第三方程序集是个好习惯吗?
提前致谢,
汤姆。
答案 0 :(得分:4)
因为我的所有容器配置都是在MVC项目中完成的 强制引用所有图层,例如数据,理想情况下是网络 项目应该不知道。
如果您没有引用这些图层,那么您希望相应的程序集在运行时最终位于bin
文件夹中?您不应该担心在MVC应用程序中引用这些层。
但没有引用将确保顽皮的开发人员不会 开始直接引用类。
你应该教你的开发人员好的做法。