在Newtonsoft Json中序列化类层次结构

时间:2012-01-25 06:08:01

标签: c# json abstract-class json.net

我正在尝试使用C#在Newtonsoft Json中序列化类层次结构。

我的班级结构如下:

public abstract class Foo
{
    public string PropertyOne{get;set;}
}

public class Bar : Foo
{
    public string PropertyTwo{get; set;}
}

当我序列化我的Bar类时,我只有Foo类的PropertyOne属性而不是Bar Class的PropertyTwo。抽象基类的属性对于我们的大多数消息是通用的,因此具有层次结构感觉就像是最佳实践选项。

有没有人知道如何让序列化包含基类和子类中的所有属性,而不删除层次结构?

2 个答案:

答案 0 :(得分:1)

JsonConvert.SerializeObject似乎为我做了伎俩

string json = JsonConvert.SerializeObject(new Bar{ PropertyOne = "hello", PropertyTwo = "world" });

输出:

{"PropertyTwo":"world","PropertyOne":"hello"}

答案 1 :(得分:1)

我遇到了这个问题,因为我的主类有DataContract序列化(DataMember)而我的父类没有。

作为愚蠢错误的提示者发布: - )