У меня проблема с тем, что DataContract Serializer не отображает элементы данных или свойства в нужном порядке.У меня есть класс, украшенный контрактом данных, который наследуется от другого класса, украшенного контрактом данных, например, он является дочерним по отношению к родителю, и я задаю порядок сортировки для определенных свойств.
Я не уверен, есть ли какой-то особый параметр конфигурации, который мне нужно использовать, или как это сделать, даже если для этого требуется настраиваемая процедура сортировки.
В основном мне нужны определенные свойства из«ParentResource» появляется перед некоторыми свойствами из «ChildResource» при сериализации выходных данных.
Идеальное упорядочение свойств в сериализованном представлении: - ParentProperty1 - ParentProperty2 - ChildProperty1 - ChildProperty2
Текущее свойствоПорядок в сериализованном представлении: - ChildProperty1 - ChildProperty2 - ParentProperty1 - ParentProperty2
using System.Runtime.Serialization;
namespace DataContractSerializationOrderingError
{
[DataContract]
[KnownType(typeof(ParentResource))]
public class ChildResource : ParentResource
{
[DataMember(EmitDefaultValue = false)]
public int ChildProperty1 { get; set; }
[DataMember(EmitDefaultValue = false)]
public int ChildProperty2 { get; set; }
}
[DataContract]
public class ParentResource
{
[DataMember(EmitDefaultValue = false, Order = 0)]
public int ParentProperty1 { get; set; }
[DataMember(EmitDefaultValue = false, Order = 1)]
public int ParentProperty2 { get; set; }
}
}