2017-01-05 3 views
0

У меня есть этот класс:Свойства не сериализации при размещении в Json

public class Customer 
{ 
    public CustomerOrders Orders {get; set;} 
    public int Number {get; set;} 
    public string Name {get; set;} 
} 

public class CustomerOrders : List<Order> 
{ 
    public string CustomProperty1 {get; set;} 
    public string CustomProperty2 {get; set;} 
} 

Классы помечаются с [Serializable] и [DataContract()] в то время как все свойства отмечены [Datamember()].

При публикации Json с использованием HttpCLient.PostAsJsonAsync() объект клиента десериализуется обратно в контроллере, однако оба пользовательских свойства имеют значение null, даже если они установлены на стороне клиента.

Это проблема, потому что класс CustomerOrders наследуется непосредственно от List<T>?

ответ

0

Ваши подозрения верны. Сериализатор будет сериализовать только элементы в списке, но не дополнительные свойства класса списка. Сериализатор имеет специальную обработку для IEnumerable. Либо сделайте List свойством класса, либо используйте другой Json Serializer.

Смежные вопросы