2012-01-25 50 views
1

我试图使用C#序列化Newtonsoft Json中的类层次结构。Newtonsoft Json中的序列化类层次

我的阶级结构是这样的:

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

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

当我序列化我的酒吧类,我只有从酒吧类Foo类不是PropertyTwo的PropertyOne财产。抽象基类的属性对我们大多数消息来说是通用的,所以有一个层次感觉就像是最佳实践选项。

有谁知道如何获得序列化以包含来自基类和子类的所有属性,而不删除层次?

回答

1

JsonConvert.SerializeObject似乎这样的伎俩,我

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

输出:

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

我有这个问题,因为我的主要类有DataContract序列(数据成员)和我的父类没有。

发布作为提示器用于笨错误:-)

+0

我已经添加了一个'DataContract'属性基类以防止构件从序列化,但随后所有派生类型所需'DataMember'属性在JSON序列化。 XML序列化没有'DataMember'属性。 – TaintedLemon

相关问题