2012-09-25 95 views
1

随着MVC4的发布,现在在Http命名空间中有webapi和IDependencyResolver接口,它为每个请求使用IDependencyScope。这个dependencyScope在每个请求之后也被处理掉。只需在应用程序启动时使用GlobalConfiguration.Configuration进行设置即可轻松进行设置。如何设置MVC4和WebApi中的依赖注入与处置?

对于“正常”的MVC控制器,这也是可能的吗?有没有类似的界面,还是只需要在我的控制器或服务中进行处理?

回答

2

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

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