gpt4 book ai didi

json.net - 使用 DataContract 序列化从基类派生的 POCO 类?

转载 作者:行者123 更新时间:2023-12-02 01:57:21 25 4
gpt4 key购买 nike

我注意到,当使用派生自使用显式 DataContract 属性的基类的 JSON.NET 对 POCO 类进行序列化/反序列化时,派生类上的任何 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 的)在这里做了“正确的事情”并序列化/反序列化“地址”。

谢谢!

亨里克

最佳答案

在 JSON.NET 中,至少从 v4.5.6 开始,它会检测基类的 DataContractassumes opt-in serialization .由于 Address 没有用 DataMember 属性修饰,因此它不会被序列化。

这是根据 James Newton-King 设计的,没有计划更改。

关于json.net - 使用 DataContract 序列化从基类派生的 POCO 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com