#c# #.net #xml #serialization #mvvm
#c# #.net #xml #сериализация #mvvm
Вопрос:
В приложении, использующем MVVM, MVC,… В какой части я должен сделать объекты сериализуемыми?
В качестве примера я создаю приложение, которое использует MVVM (wpf), в котором я должен сериализовать содержимое моей модели в подраздел web.config, чтобы разрешить настройку из моего приложения.
Я создал XmlService, который будет обрабатывать сериализацию объектов, но чтобы упростить сериализацию (и сделать ее более расширяемой), Очевидно, мы можем использовать аннотации, чтобы определить, какие свойства являются атрибутами и т. Д…
Является ли хорошей практикой просто сделать мою модель сериализуемой? (используйте аннотации, чтобы определить, какие атрибуты и т. Д.)? Я предполагаю, что сериализуемость viewmodel — плохая практика, и на самом деле это не то, что я планирую делать в любом случае.
Или мне создать какую-то промежуточную модель, например, XML-модель.. Это кажется наиболее расширяемым способом работы, но создает массу работы при изменении модели: требует обновлений для Model, ViewModel И xml-model, что, по-видимому, очень подвержено ошибкам…
Комментарии:
1. На мой взгляд, вы совершенно правы; именно модели должны быть сериализуемыми, поскольку они чаще всего являются «элементами данных».
2. обычно вы хотите сериализовать данные — это модель.
3. я создаю дубликат классов моделей исключительно для целей сериализации, поэтому у вас нет всех тегов xml в классе модели. таким образом, ваши классы модели не изменятся, если вы позже решите сериализовать, чтобы вместо этого использовать JSON. Это создает дополнительную работу, но приводит к четкой цели для каждого класса. А также это означает, что в вашей модели могут быть вещи, которые не являются сериализуемыми, которые затем преобразуются во что-то (например, в строку). т.Е. Данные и структура ваших классов моделей не определяются задачей сериализации