1

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

这对于“普通”MVC 控制器是否也是可能的?是否有相似的界面,或者我只需要自己在我的控制器或服务中进行处理?

4

1 回答 1

2

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

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

于 2012-09-25T09:17:52.597 回答