发布为Json时,属性未被序列化

时间:2017-01-05 12:41:47

标签: c# asp.net-web-api asp.net-web-api2

我有这堂课:

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()]

使用HttpCLient.PostAsJsonAsync()作为Json发布时,客户对象在控制器中反序列化,但是两个自定义属性都设置为null,即使它们设置为客户端。

这是一个问题,因为CustomerOrders类直接从List<T>

继承

1 个答案:

答案 0 :(得分:0)

你的怀疑是正确的。序列化程序只会序列化列表中的元素,但不会序列化列表类的额外属性。序列化程序对IEnumerable有一些特殊处理。将List作为类的属性或使用不同的Json Serializer。