Порядок членов данных и десериализация XML

2

У меня есть приложение RESTful WCF, которое использует пользовательские классы в качестве параметров метода сервиса. Эти классы украшены атрибутом [DataContract], и каждое из их свойств украшено атрибутом [DataMember].

Deserializer работает в соответствии со следующей страницей "Order Member Order" в MSDN: http://msdn.microsoft.com/en-us/library/ms729813.aspx.

То есть, он ожидает, что элементы в форматированных XML-данных будут следовать описанному порядку. На самом деле, если один из элементов не соответствует порядку, после десериализации он не имеет представленного значения, а имеет значение null.

Есть ли хороший способ разрешить вызывающей программе свободно упорядочивать xml-элементы (т.е. в любом порядке) и иметь десериализацию для каждого упорядочения элементов?

Теги:
wcf

1 ответ

2
Лучший ответ

Большинство XML не позволяют вводить элементы в произвольном порядке. Нет никаких оснований позволять это, насколько я знаю.

Сериализатор данных не поддерживает это вообще. Это добавит дополнительные служебные данные и не даст никакой ценности.

Почему ваши абоненты не могут отправить правильный XML?

  • 0
    Джон, спасибо за твой ответ. Вы сказали: «Сериализатор контрактов данных вообще не поддерживает это». Можете ли вы указать мне документацию Microsoft, в которой об этом говорится прямо, или вы собрали ее из разных источников?
  • 0
    @Ralph: вы сказали это сами: «он ожидает, что элементы входных данных в формате XML будут следовать описанному порядку». Кроме того, различные записи в течение многих лет о различиях между сериализацией контракта данных и сериализацией XML показали, что сериализация контракта данных должна быть быстрой и простой. Выбор не является «простым», и он не добавляет никакой ценности.
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню