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

Asp.net mvc ASP.NET MVC控制器工厂生命周期,asp.net-mvc,controller,Asp.net Mvc,Controller,DefaultControllerFactory包含三种不同的方法: GetControllerInstance CreateController GetControllerType 每个方法在请求生存期内何时执行?我见过自定义控制器工厂,其中一个方法被重写和实现,但我似乎找不到每个方法的执行路径的详细信息。CreateController被调用。 它首先调用GetControllerType来确定控制器的类型,然后将该类型传递给GetControllerInstance 因为(通常)重写Get

DefaultControllerFactory
包含三种不同的方法:

  • GetControllerInstance
  • CreateController
  • GetControllerType

  • 每个方法在请求生存期内何时执行?我见过自定义控制器工厂,其中一个方法被重写和实现,但我似乎找不到每个方法的执行路径的详细信息。

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


    因为(通常)重写
    GetControllerInstance
    (以便选择类型的逻辑保持不变)更容易(而且足够频繁),所以您经常会看到这种情况发生。

    对于MVC3更新,方法按以下顺序调用

    GetControllerType
    首先被调用,然后被调用两次

  • GetControllerType
  • GetControllerSessionBehavior
  • CreateController
  • GetControllerType
  • CreateControllerInstance
  • ReleaseController