ASP.net Web API:为什么每个请求都创建了控制器?

时间:2014-08-07 06:31:43

标签: asp.net-mvc

Mike Wasson的文章" Dependency Injection for Web API Controllers"在www.asp.net上说:

  

依赖范围和控制器生命周期

     

根据请求创建控制器......

我是否理解ASP.NET Web API是否为每个传入请求创建了一个新的控制器实例(并满足其依赖关系)?

这种方法是不是浪费,因为它理论上可以将单个实例用于所有请求时创建并销毁控制器的许多实例?

2 个答案:

答案 0 :(得分:25)

控制器包含有关传入请求的信息(状态)。

如果您只有一个控制器来处理许多请求,那么他们都会感到困惑,用户可能会得到一些奇怪的结果。

答案 1 :(得分:1)

如果没有重新创建每个请求,那么你实际上有一个单例或静态类意味着你需要处理在异常和各种其他情况下重置类状态。结果几乎肯定意味着错误。

每次创建新上下文的开销是为了更好的代码可维护性而付出的代价。