変更点その1として、Controllerクラス。MVCの肝となるクラスですが、実際の変更点は以下程度。
public abstract class Controller : ControllerBase, IActionFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter { (中略) public IActionInvoker ActionInvoker { get { if (_actionInvoker == null) { _actionInvoker = CreateActionInvoker(); //_actionInvoker = new ControllerActionInvoker(); // 取得メソッドが変更 } return _actionInvoker; } set { _actionInvoker = value; } } (中略) //以下が追加 protected virtual IActionInvoker CreateActionInvoker() { return new ControllerActionInvoker(); }
Controllerの派生クラスでIActionInvokerの取得メソッドを拡張し、任意のIActionInvokerがセットできる様に拡張されています。