我正在尝试使用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。抽象基类的属性对于我们的大多数消息是通用的,因此具有层次结构感觉就像是最佳实践选项。
有没有人知道如何让序列化包含基类和子类中的所有属性,而不删除层次结构?
答案 0 :(得分:1)
JsonConvert.SerializeObject
似乎为我做了伎俩
string json = JsonConvert.SerializeObject(new Bar{ PropertyOne = "hello", PropertyTwo = "world" });
输出:
{"PropertyTwo":"world","PropertyOne":"hello"}
答案 1 :(得分:1)
我遇到了这个问题,因为我的主类有DataContract序列化(DataMember)而我的父类没有。
作为愚蠢错误的提示者发布: - )