ASP.NET MVC控制器工厂生命周期

时间:2010-09-12 22:55:41

标签: asp.net-mvc controller

DefaultControllerFactory包含三种不同的方法:

  1. GetControllerInstance
  2. CreateController
  3. GetControllerType
  4. 请求生命周期中每个方法何时执行?我见过自定义控制器工厂,其中一个方法被覆盖并实现,但我似乎无法找到每个方法的执行路径的详细信息。

2 个答案:

答案 0 :(得分:2)

CreateController被召唤 它首先调用GetControllerType来确定控制器的类型,然后将此类型传递给GetControllerInstance

因为(仅)覆盖GetControllerInstance更容易(并且经常足够)(因此选择类型的逻辑保持不变),您经常会看到这种情况发生。

答案 1 :(得分:1)

更新MVC3,按此顺序调用方法。

首先调用

GetControllerType并调用两次。

  1. GetControllerType
  2. GetControllerSessionBehavior
  3. CreateController
  4. GetControllerType
  5. CreateControllerInstance
  6. ReleaseController