Я занимаюсь разработкой приложения на C # для Windows Mobile, и, как и большинство моих WM-приложений, я всегда теряюсь, когда выбираю стратегию сериализации. В настольном мире меня это не слишком беспокоит, потому что я уже разработал довольно надежный пользовательский сериализатор xml - однако в мире WM я не хочу его использовать из-за снижения производительности отражения.
Поэтому я разрабатываю все на основе интерфейсов объектов доступа к данным (DAO), поэтому я могу легко поменять различные реализации для сериализации в xml, registry, sqlce и т. Д. При разработке вначале я обычно реализую непостоянный непостоянный DAO памяти (с использованием словаря <>), за которым следует DAO XmlSerializer, когда я хочу сохранить данные, а затем, когда все будет завершено, перейти к полномасштабному DAO sqlce.
Однако в моем последнем приложении я не могу использовать DAO XmlSerializer из-за того, как плохо он (не) обрабатывает свойства, являющиеся интерфейсами. То есть у меня есть объект Foo, который содержит свойство List Bars, XmlSerializer не может его сериализовать (хотя я легко смог разработать свой собственный настраиваемый сериализатор xml, который мог бы - см. Рисунок)
Все это, чтобы задать вопрос: Какие стратегии DAO вы нашли, чтобы помочь вам разрабатывать приложения для WM? Планируете ли вы заранее несколько разных DAO на разных уровнях зрелости приложений? Вы начинаете на полномасштабной DAO? Что бы вы порекомендовали для быстрой и простой постоянной сериализации DAO, когда XmlSerializer не может быть использован?