Свойство C # Lazy инициализируется в конструкторе - PullRequest
0 голосов
/ 21 января 2019

У меня ленивая команда в моем представлении модель:

private ICommand _testCommand;
public ICommand TestCommand => _testCommand ?? (_testCommand = new Command(Test));

и по какой-то причине он вызывается и инициализируется в конструкторе. Это конструктор:

public TestViewModel(IMediator mediator, IDispatcherService dispatcherService, IGroupService groupService)
{
    _mediator = mediator;
    _dispatcherService = dispatcherService;
    _groupService = groupService;
}

Команда не связана в пользовательском интерфейсе и не вызывается нигде, кроме модульных тестов, в которых эта проблема возникает при построении модели представления, предшествующей вызову свойства.

Я попытался поставить точку останова на свойстве, и когда он вошел в точку останова в стеке вызовов, он показал, что последним, кто вызвал это свойство, является [Внешний код], а до этого конструктор.

Кто-нибудь знает, что на самом деле здесь происходит?

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