DynamicViewDataDictionary.cs中发生了什么?

时间:2012-02-20 13:35:08

标签: model-view-controller dynamic

我想知道是否有人可以向我解释这一点:

internal sealed class DynamicViewDataDictionary : DynamicObject {
    private readonly Func<ViewDataDictionary> _viewDataThunk; //// eg () => ViewData

public DynamicViewDataDictionary(Func<ViewDataDictionary> viewDataThunk)
{ 
    _viewDataThunk = viewDataThunk;
}

private ViewDataDictionary ViewData {
    get {
        ViewDataDictionary viewData = _viewDataThunk();
        Debug.Assert(viewData != null);
        return viewData;
    }
}
    .................

这是在ViewView属性的WebViewPage中实例化的 ()=&gt;构造函数中的ViewData。所以看来这里的ViewData属性将使用这个func()返回自己?这里发生了什么,为什么这样做?

1 个答案:

答案 0 :(得分:1)

我只能推测,但也许这样做是为了在测试期间提供帮助。拥有一个函数,您可以在执行期间更改返回值。