Что происходит в DynamicViewDataDictionary.cs? - PullRequest
1 голос
/ 20 февраля 2012

Интересно, может ли кто-нибудь объяснить мне это:

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;
    }
}
    .................

Это создается в WebViewPage для свойства ViewBag с помощью () => ViewData в конструкторе.Таким образом, кажется, что здесь свойство ViewData будет возвращать себя с этим func ()?Что здесь происходит и почему это делается таким образом?

1 Ответ

1 голос
/ 14 июня 2012

Я могу только строить догадки, но, возможно, это сделано таким образом, чтобы помочь во время тестирования. Имея функцию, вы можете изменить возвращаемое значение во время исполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...