DI / IoC MVC程序集参考问题和抽象

时间:2012-03-07 16:42:45

标签: asp.net-mvc dependency-injection inversion-of-control autofac

  

可能重复:
  Ioc/DI - Why do I have to reference all layers/assemblies in entry application?

我决定使用Autofac作为DI容器构建一个新的MVC 3应用程序。

由于我的所有容器配置都是在MVC项目中完成的,因此它强制引用所有层,例如数据,理想情况下,Web项目应该不知道。

有没有一种简单的方法可以将其移到单独的“结构”类库中?我遇到的问题是我无法在Fabric项目中配置控制器,因为它会导致Fabric和MVC项目之间的循环引用。

据我所知,该引用仅用于配置,但没有引用将确保顽皮的开发人员不会直接开始引用这些类。

在一个相关的说明中,是否有人对抽取他们的DI容器有任何感觉 - 或者这只是被带走了!根据经验,我认为在这个级别包装第三方程序集是个好习惯吗?

提前致谢,

汤姆。

1 个答案:

答案 0 :(得分:4)

  

因为我的所有容器配置都是在MVC项目中完成的   强制引用所有图层,例如数据,理想情况下是网络   项目应该不知道。

如果您没有引用这些图层,那么您希望相应的程序集在运行时最终位于bin文件夹中?您不应该担心在MVC应用程序中引用这些层。

  

但没有引用将确保顽皮的开发人员不会   开始直接引用类。

你应该教你的开发人员好的做法。