我正试图使用C#在NewtonsoftJson中序列化类层次结构。
我的班级结构如下:
public abstract class Foo
{
public string PropertyOne{get;set;}
}
public class Bar : Foo
{
public string PropertyTwo{get; set;}
}
当我序列化我的Bar类时,我只有Foo类的PropertyOne属性,而没有Bar类的PropertyTwo属性。抽象基类的属性对我们的大多数消息来说都是通用的,因此拥有层次结构感觉是最佳实践选项。
有人知道如何在不删除层次结构的情况下,使序列化包含基类和子类中的所有atribute吗?
JsonConvert.SerializeObject
似乎为我的做了手脚
string json = JsonConvert.SerializeObject(new Bar{ PropertyOne = "hello", PropertyTwo = "world" });
输出:
{"PropertyTwo":"world","PropertyOne":"hello"}
我遇到了这个问题,因为我的主类有DataContract序列化(DataMember),而我的父类没有。
作为一个愚蠢错误的提示者发布:-)