Реализация собственного IXmlSerializer для веб-службы - PullRequest
0 голосов
/ 15 марта 2011

Я делаю веб-сервис asmx, который передает пару объектов, у меня есть две проблемы с этим: во-первых, я использую словарь, а во-вторых, некоторые объекты имеют свойства только для чтения.

Я сделал достаточно компромиссов с веб-сервисом, и я не собираюсь дарить ему радость выиграть еще одну битву, поэтому я решил написать свой собственный сериализатор для своих объектов.Это хорошее решение?Я говорю о 7 классах и одном словаре, у каждого из которых есть своего рода свойство только для чтения.
Нужно ли мне создавать файл схемы для каждого класса?И, глядя на реализацию IXmlSerializer, это не кажется слишком сложным, все, что мне нужно сделать, это написать «конструктор» для класса в ReadXml и «деконструктор» в WriteXml, нет?

Редактировать: Хорошо, это ответ на один вопрос, теперь, когда я получаю объекты в клиенте, они получены как набор данных [], как мне преобразовать их в соответствующий класс?

1 Ответ

1 голос
/ 15 марта 2011

В целом вы правы, это не очень сложно для данного отдельного класса.

Где это может быть сложно, если у вас есть полный граф объектов, как вы описываете.Вам просто нужно придумать структуру XML, которая содержит всю информацию, необходимую для создания экземпляра вашего типа и всех зависимых типов.

Для этого также могут потребоваться изменения в ваших классах, т. Е. ЕслиЭкземпляр зависимого типа обычно внутренне создается вашим основным классом, как вы теперь создаете этот экземпляр извне и внедряете его в свой класс?Не очень - поэтому, если существует граф объектов с большим количеством зависимостей между объектами, я бы дважды подумал об этом подходе.Если он соответствует тому, что вы в настоящее время определили, хотя для объектных зависимостей и политик создания непременно сделайте это.

...