如何在3层Web应用程序(ASP.NET MVC)中使用Autofac?

时间:2008-11-27 15:38:20

标签: asp.net-mvc dependency-injection autofac

我可以找到的示例使用两层体系结构,其中控制器直接使用数据访问层中的存储库类。请参阅herehere

如果您有使用这些组件的服务或业务逻辑层,您会从数据访问层注册组件?理想情况下,数据访问层不应该从用户界面层引用,对吧?因此,Application_Start不适合这样做。

什么是更好的方式?

谢谢!

1 个答案:

答案 0 :(得分:7)

必须知道您要使用哪些实现。通常有3种方法可以实现这一目标:

  1. 在编译时,这是Autofac使用的
  2. 在运行时从Castle Windsor可以执行的预定义配置文件
  3. 在运行时使用dyanamic configuartion
  4. 使用Autofac,您有几个选择

    1. 在Application_Start中连接所有内容
    2. 将责任交给另一个实现factory pattern的组件并注册所需的组件。
    3. 对于#2,我会实现类似IContainer接口的功能,以便您的IoC框架与您的系统松散耦合。然后让您的数据访问实现使用该接口来注册所需的组件。