我有这堂课:
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>
?
答案 0 :(得分:0)
你的怀疑是正确的。序列化程序只会序列化列表中的元素,但不会序列化列表类的额外属性。序列化程序对IEnumerable有一些特殊处理。将List作为类的属性或使用不同的Json Serializer。