2010-09-12 12 views
1

Le DefaultControllerFactory contient trois méthodes différentes:ASP.NET MVC contrôleur cycle de vie usine

  1. GetControllerInstance
  2. CreateController
  3. GetControllerType

Quand chaque méthode exécutée dans la durée de vie de la demande? J'ai vu des fabricants de contrôleurs personnalisés où l'une de ces méthodes est surchargée et implémentée, mais je n'arrive pas à trouver de détails sur le chemin d'exécution de chacun d'entre eux.

Répondre

2

CreateController est appelée.
Il appelle d'abord GetControllerType pour déterminer le type du contrôleur, puis passe ce type à GetControllerInstance.

Parce qu'il est plus facile (et souvent suffisant) de remplacer (uniquement) GetControllerInstance (de sorte que la logique derrière la sélection du type reste la même), vous verriez souvent cela se produire.

1

Mise à jour pour MVC3, les méthodes sont appelées dans cet ordre.

GetControllerType est appelée en premier et est appelée deux fois.

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