DataContractSerializer пропускает объект - PullRequest
2 голосов
/ 09 февраля 2011

Я использую DataContractSerializer для десериализации XML в список.

Структура XML выглядит следующим образом:

<ArrayOfAttributes>
<Attributes>
<Type></Type>
<Value></Value>
<Name></Name>
</Attributes>
</ArrayOfAttributes>

Класс Attributes имеет 3 строковых элемента данных, на которые ссылаются через свойства, они:

[DataMember(Order=0)]
Type
[DataMember(Order=1)]
Value
[DataMember(Order=2)]
Name

Когда служба WCF возвращает более одного элемента Attributes в XML, объект Name заполняется успешно, но если возвращается только 1 элемент Attributes, значение Name остается нулевым.

Кто-нибудь знает, что я делаю не так?

1 Ответ

0 голосов
/ 17 марта 2012

Кажется, что порядок DataMember неправильный согласно вставленному XML.

Попробуйте

[DataMember (Order = 0)] Тип [DataMember (Order = 1)] Имя [DataMember (Order = 2))] Значение

Другой вариант:

[DataMember] Тип [DataMember] Имя [DataMember] Значение

Попробуйте второй вариант, он всегда будет работать:)

...