Сериализация View или ViewModel - PullRequest
0 голосов
/ 31 января 2019

Я недавно начал разрабатывать в UWP.Мы разрабатываем программное обеспечение, которое в значительной степени опирается на графику, и коллеги предлагают нам сериализовать каждое представление в одном XML, и я думаю, что это не очень хорошая идея из-за значений свойств, обработки статических типов, и я не уверен, что мы можем справиться с сериализациейобрабатывать с асинхронными процессами правильно, и у нас есть несколько пользовательских элементов управления, которые повторно используются в других представлениях.Я хочу сериализовать данные в нашей ViewModel, может быть, в нашей модели.Я хотел бы спросить:

В чем преимущества сериализации View над сериализацией ViewModel?

Если сериализация ViewModel невыгодна, Почему?

edit: мы используем объекты зависимостей, и я не уверен, можем ли мы их сериализовать.

1 Ответ

0 голосов
/ 31 января 2019

Преимущества сериализации ViewModel в моем опыте:

  • , поскольку вы кодируете ViewModels, вы полностью контролируете сериализацию
  • , потому что ViewModels не зависят отПредставление (при правильном применении MVVM) тестирование (де) сериализации может быть выполнено с использованием модульных тестов

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

Если свойства (зависимостей) View должны быть сериализованы, сначала попытайтесь связать эти свойства с ViewModel.Если вам это удастся, все, что нужно сделать, это сериализовать ViewModel.

Если есть свойства View, которые не могут быть связаны с ViewModel, добавьте интерфейс к представлению, который можно вызывать изViewModel представления, который обеспечивает способ чтения и записи этих свойств из представления в ViewModel и обратно.Вызывайте эти методы при (де) сериализации ViewModel.

...