Сериализация модели представления в Silverlight на Windows Phone 7 - PullRequest
2 голосов
/ 19 апреля 2011

У меня есть приложение Silverlight для Windows Phone.Когда приложение надгробий, я хочу сохранить текущую модель представления.Во-первых, где я могу хранить модель представления?

  1. Служба приложений для телефона (я не знаю, когда это произойдет / умрет)
  2. Изолированное хранилище

Я почти уверен, что мне следует хранить мою модель представления в изолированном хранилище.Моя проблема в том, что я получаю сообщение об ошибке при попытке поместить его в изолированное хранилище.Ошибка говорит:

Тип 'MyViewModel' не может быть сериализован.Попробуйте пометить его с помощью DataContractAttribute и пометить все его элементы, которые вы хотите сериализовать, с помощью атрибута DataMemberAttribute.

Моя проблема в том, что в этой модели представления есть МНОГО элементов.В то же время, у него есть дочерние объекты, которые также имеют членов.Такое ощущение, что это загрязняет мой код.Кажется странным, что я могу без проблем поместить модель представления в PhoneApplicationService.Однако, я получаю эту ошибку, только когда пытаюсь поместить ее в изолированное хранилище.

Как мне преодолеть это?Я просто хочу сохранить модель представления во время надгробия.Спасибо!

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Состояние PhoneAppService не сохранит данные, если приложение будет закрыто через некоторое время после захоронения.Iso-хранилище - это дисковое хранилище, тогда как PhoneAppService.State - это просто словарь переходных состояний, который переживает захоронение.

0 голосов
/ 19 апреля 2011

Во-первых, вам действительно нужно сохранить всю ВМ?Это может быть то, что вам нужно для вашего приложения;но я бы все же попросил вас рассмотреть возможность сохранения только тех битов, которые вам абсолютно необходимы, и при необходимости восстановить экземпляр вашей виртуальной машины.Тем не менее, изолированное хранилище - это то место, куда вы можете запихнуть вещи для сохранения.

Вы можете использовать класс IsolatedStorageSettings для хранения данных типа пары ключ-значение.Также см. здесь для полного прохождения надгробия.В обучающем комплекте есть класс IsolatedStorageHelper, который вы можете использовать.Он использует сериализатор / десериализатор Json и должен работать с большинством классов со стандартными свойствами типов.В Codeplex здесь также есть помощник Tombstone, который может вам помочь.

Надеюсь, это поможет!

0 голосов
/ 19 апреля 2011

Джеффа Просиза Реальное захоронение в Silverlight для Windows Phone должно рассказать вам почти все, что вам нужно знать о надгробии.

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