Сериализация классовой иерархии в Newtonsoft Json - PullRequest
1 голос
/ 25 января 2012

Я пытаюсь сериализовать иерархию классов в Newtonsoft Json , используя C #.

Моя структура класса выглядит следующим образом:

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

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

Когда я сериализую свой класс Bar, у меня будет только свойство PropertyOne из класса Foo, а не PropertyTwo из класса Bar.Свойства абстрактного базового класса являются общими для большинства наших сообщений, поэтому наличие иерархии кажется оптимальным вариантом.

Кто-нибудь знает, как получить сериализацию, включающую также все атрибуты из базового класса?как подкласс, не удаляя иерархию?

Ответы [ 2 ]

1 голос
/ 07 августа 2013

У меня была эта проблема, потому что мой основной класс имел сериализацию DataContract (DataMember), а мой родительский класс - нет.

Опубликовано как подсказка для глупой ошибки: -)

1 голос
/ 25 января 2012

JsonConvert.SerializeObject, кажется, помогает мне

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

Вывод:

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