CreateController(RequestContext, controllerName) 透過反射建立 Controller 實例,內部快取 GetControllerType 結果避免重複反射。
public class ControllerContext : RequestContext {
public ControllerContext(HttpContextBase httpContext, RouteData routeData, IController controller)
: base(httpContext, routeData) { Controller = controller; }
public IController Controller { get; private set; }
}
MvcHandler 取得 Controller 後,建立 ControllerContext 並呼叫 controller.Execute(controllerContext) 進入後續流程。