normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

MVC 2 Preview 1での変更点

変更点その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がセットできる様に拡張されています。