2

继承自的对象的序列化Dictionary<DateTime, double>不包括生成的 json 字符串中的字段和属性。

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

序列化类型的对象:

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

    public Timeserie()
    {

    }

    public Timeserie(string id)
    {
        this.id = id;
    }
}

使用:

var json_settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };
var s = JsonConvert.SerializeObject(timeserie, Formatting.Indented, json_settings);

仅包括基类数据:

{
  "01/02/2009 00:00:00": 10.23,
  "01/05/2009 00:00:00": 11.33
}

该字段id不包括在内。

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

4

1 回答 1

0

看来,通过 json.net 的代码,它有一个处理字典的特殊合同。

所以要么制定新合同,要么封装字典(即,使字典成为你的类的属性)

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

于 2011-11-15T20:21:41.663 回答