Serialization 使用json.net序列化派生对象

Serialization 使用json.net序列化派生对象,serialization,properties,field,json.net,inherited,Serialization,Properties,Field,Json.net,Inherited,从字典继承的对象的序列化在生成的json字符串中不包括字段和属性 注意:这是一个简化的示例。是的,我知道不应该从字典类型派生 序列化类型为的对象: public class Timeserie : Dictionary<DateTime, double> { public string id; public Timeserie() { } public Timeserie(string id) { this.id

字典继承的对象的序列化在生成的json字符串中不包括字段和属性

注意:这是一个简化的示例。是的,我知道不应该从字典类型派生

序列化类型为的对象:

public class Timeserie : Dictionary<DateTime, double>
{
    public string id;

    public Timeserie()
    {

    }

    public Timeserie(string id)
    {
        this.id = id;
    }
}
仅包括基类数据:

{
  "01/02/2009 00:00:00": 10.23,
  "01/05/2009 00:00:00": 11.33
}
不包括
id
字段


我需要如何使用json.net以使派生类中声明的字段和属性包含在序列化中?

通过查看json.net的代码,它似乎有一个处理字典的特殊契约

因此,要么制定新的契约,要么封装字典(即,使字典成为类的属性)


如果创建相互继承的普通类,则此代码将序列化派生类的所有属性。

通过查看json.net的代码,它似乎有一个处理字典的特殊约定

因此,要么制定新的契约,要么封装字典(即,使字典成为类的属性)


如果创建相互继承的普通类,则此代码将序列化派生类的所有属性

将忽略派生类中声明的公共字段和属性。如果删除dictionary的继承,它序列化id了吗?我基本上做的就是你正在做的事情,它处理子类很好,然后它就按照它应该做的那样工作了。如果你制作一个像MyDictionary{public int fakeProperty{get;set;}这样的假基类继承之后,它是否仍然序列化掉id和fakeproperty?派生类中声明的公共字段和属性都被忽略。如果你去掉dictionary的继承,它是否序列化了id?我基本上完全按照你所做的做,它只处理子类,然后它就会正常工作。如果你做了一个f使用类似MyDictionary{public int fakeProperty{get;set;}的基类并继承它,它是否仍然序列化id和fakeProperty?
{
  "01/02/2009 00:00:00": 10.23,
  "01/05/2009 00:00:00": 11.33
}