我注意到,在使用JSON.NET序列化/反序列化POCO类时,该类派生自使用显式DataContract属性的基类,因此忽略派生类上的任何POCO属性。
例如,在此示例中,“Address”未序列化/反序列化:
[DataContract]
public class MyBaseClass
{
[DataMember(Name = "SomeName")]
public string Name { get; set; }
}
public class MyDerivedClass : MyBaseClass
{
public string Address { get; set; }
}
这是故意的吗?
FWIW,看起来DataContractSerializer(至少是XML)在这里做“正确的事”并序列化/反序列化“地址”。
谢谢!
的Henrik
答案 0 :(得分:2)
在JSON.NET中,至少从v4.5.6开始,它会检测基类的DataContract
和assumes opt-in serialization。由于Address
未使用DataMember
属性进行修饰,因此不会对其进行序列化。
这是根据James Newton-King的设计而没有计划的改变。