根据这篇文章,当序列化为 JSON 时,我希望在字段列表的顶部看到我的基类中的字段。但是,我看到列表底部的字段。排序在实际类本身中是正确的,但在层次结构中不正确。
正在发生的事情是它与班级正确排序,它正在做与我期望的完全相反的事情。我希望基类首先对其字段进行序列化。我不想使用 Order=X 属性,因为我的对象中有太多字段。
这是与此处描述的完全相反的行为:
http://msdn.microsoft.com/en-us/library/ms729813(v=vs.110).aspx
[DataContract]
public class MyBase {
[DataMember]
public long Id { get; set; }
}
[DataContract]
public class MyChild : MyBase {
[DataMember]
public string Field1 { get; set; }
[DataMember]
public string Field2 { get; set; }
[DataMember]
public string Field3 { get; set; }
}
[DataContract]
public class MySecondChild : MyChild {
[DataMember]
public string SecondField { get; set; }
}
序列化 MySecondChild 的实例时...
预期的
{
"Id": 1,
"Field1": "f1",
"Field2": "f2",
"Field3": "f3",
"SecondField": "s1"
}
实际的
{
"SecondField": "s1",
"Field1": "f1",
"Field2": "f2",
"Field3": "f3",
"Id": 1
}