如何在MVC 4和Web Api中设置依赖注入?

时间:2012-09-25 08:05:06

标签: c# dependency-injection asp.net-mvc-4

随着MVC4的发布,Http命名空间中现在有webapi和IDependencyResolver接口,它为每个请求使用IDependencyScope。此dependencyScope也会在每次请求后处理。只需在应用程序启动时设置它并使用GlobalConfiguration.Configuration即可轻松设置。

“普通”MVC控制器也可以吗?有没有相似的界面,或者我只需要在我的控制器或服务中自行处理?

1 个答案:

答案 0 :(得分:2)

Web API包含此范围机制的原因是因为HTTP请求不能始终用作范围,因为Web API可以在自托管环境中运行,这意味着没有HttpContext.Current

另一方面,'普通'MVC控制器将始终在Web环境中运行,因此总会有一个HttpContext可用,这意味着此机制可用作定义范围的方法。这就是许多IoC容器提供的“每Web请求”生活方式所做的。换句话说,您的MVC应用程序不需要该范围,因为它们总是可以使用“每个Web请求”的生活方式。