1
DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 

上面代码的作用是让Container来管理Controller实例。当 Web 请求到达服务器时,服务器会从 Container 中获取一个 Controller 实例来处理该请求。

但是没有 Container,服务器会自动创建一个 Controller 实例。

在 Container 中管理 Controller 有什么好处?谢谢你。

4

1 回答 1

1

优点是您可以将所有 IoC 类型注册存储在单个容器中,因此可以使用您选择的 IoC 容器(Autofac、Windsor、Unity、Ninject 等)干净地管理它们的依赖关系。如果您的控制器有依赖关系,这可以让您避免在其方法中对它们进行服务定位。

我在这里为 Unity提供了一个使用示例。我在自己的项目中使用 Autofac,但遵循相同的模式。

于 2013-08-17T04:23:39.120 回答