从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,以便在派生类中声明的字段和属性包含在序列化中?
看一下json.net的代码,它似乎有一个特殊的契约来处理字典。
所以要么创建一个新的契约,要么封装字典(即,使字典成为你的类的属性)
如果您创建了相互继承的普通类,则此代码将序列化派生类的所有属性