ViewModel с зависимостями от Services + tombstoning - PullRequest
1 голос
/ 04 февраля 2012

Каков рекомендуемый способ установки / внедрения зависимостей в viewModel после захоронения, учитывая, что при деактивации приложения вы обычно добавляете ViewModel в словарь состояний, а затем, прежде чем ваше приложение повторно активирует каркас, десериализует ViewModel для чего требуется конструктор по умолчанию?

Если у меня есть класс ниже, я бы хотел, чтобы внедрение зависимостей создало экземпляр MyVM, внедряющий зависимости для IServiceA и IServiceB.Наличие конструктора по умолчанию не установит требуемые зависимости.

public class MyVM(IServiceA svca,IServiceB svcB)
{

}

Как следует настроить ViewModel в надгробном сценарии здесь?

1 Ответ

0 голосов
/ 04 февраля 2012

Я не знаю, используете ли вы конкретную среду MVVM, но в Caliburn Micro есть некоторые встроенные функции для надгробия.

Небольшой фрагмент из документов:

public class PivotPageModelStorage : StorageHandler<PivotPageViewModel> {  
    public override void Configure() {  
        this.ActiveItemIndex()  
            .InPhoneState()  
            .RestoreAfterViewLoad();  
    }  
}  

Этот пример хранит ActiveItemIndex, свойство PiveotPageViewModel, в состоянии телефона, но он также может хранить целые графы объектов в PhoneState, AppSettings или вашей собственной пользовательской реализации. Вы получаете все это, наследуя от StorageHandler. С CM вам не нужно беспокоиться о повторном введении сервисов, он справится с этим, поскольку у него есть собственный встроенный контейнер.

CM WP7 Docs

В недавнем Hanselman сообщении о создании приложения WP7 он немного рассказал о TombstoneHelper . Я этим не пользовался, но выглядит интересно.

...