Как применить шифрование на SipAudioCall в Android

Можете ли вы не просто разрешить экземпляр IDataService из вашего контейнера, прежде чем создавать экземпляр View2ViewModel?

Как вы это сделаете, будет зависеть от того, какой контейнер DI вы используете, но с AutoFac это будет:

    var findCredentialView = new View2();
    var dataService = Container.Resolve();
    var vm = new View2ViewModel(dataService);
    vm.DivisionIdnt = divisionIdnt;

    findCredentialView.DataContext = vm;

    findCredentialView.ShowDialog();

В качестве альтернативы вы можете разрешить View2ViewModel из контейнера:

    var findCredentialView = new View2();
    var vm = Container.Resolve();
    vm.DivisionIdnt = divisionIdnt;

    findCredentialView.DataContext = vm;

    findCredentialView.ShowDialog();

, который позаботился бы о введении ctor для вас.

Очевидно, что оба эти подходы требуют, чтобы у вас есть ссылка на ваш контейнер во время выполнения, но большинство приложений / контейнеров дают вам это. Если они этого не делают, просто выставляйте свой контейнер при загрузке через службу / singleton / static, как и ваши предпочтения.

Вы также можете найти этот ответ полезным: Как обрабатывать инъекцию зависимостей в WPF / MVVM application

0
задан Jeroen Heier 19 January 2019 в 07:15
поделиться