Возникает повторяющаяся проблема при передаче сериализованных объектов между клиентами, не являющимися .NET, и .NET WCF Services.
Когда WCF десериализует объекты, это строго зависит от порядка свойств.
То есть, если я определю свой класс как:
public class Foo
{
public int ID { get; set; }
public int Bar { get; set; }
}
Тогда WCF сериализует объект как:
<Foo>
<Bar>123</Bar>
<ID>456</ID>
</Foo>
Примечание: свойства сериализуются в алфавитном порядке.
Если вы попытаетесь десериализовать объект, позиции которого поменялись местами Bar
и ID
, WCF будет рассматривать неправильно расположенные элементы как нулевые.
Несмотря на то, что я знаю, что могу использовать атрибут DataMember
и задать конкретный порядок, я хочу сократить количество раз, когда мне приходится отлаживать проблемы, когда поля «таинственно» равны нулю.
Итак, мой вопрос: можете ли вы сказать десериализатору WCF игнорировать порядок полей при десериализации объектов.