2016-02-04 4 views
0

Скажем, у меня есть классы следующие C#десериализации список различных объектов

[JsonObject(MemberSerialization.OptIn)] 
public class Parent 
{ 
    [JsonProperty] 
    public int SharedProp { get; set; } 
} 

public class ChildA : Parent 
{ 
    [JsonProperty] 
    public string ChildAProperty { get; set; } 
} 

public class ChildB : Parent 
{ 
    [JsonProperty] 
    public string ChildAProperty { get; set; } 
} 

Теперь я создал List<Parent>, к которой имеет место нуля до п объектов. Сериализация списка отлично работает и дает мне действительный файл JSON, который я могу десериализовать. Проблема в том, что я в настоящее время получаю только List<Parent> назад и нет ChildA или ChildB объект.

Я использую сериализатор/десериализатор Newtonsoft JSON. Есть ли способ достичь этого или мне нужно разбить его на отдельные файлы/списки?

ответ

2

Необходимо указать TypeNameHandling в JsonSerializerSettings. Взгляните на пример this article.

+0

Работает отлично! Важно то, что я также должен использовать это в процессе десериализации. – Freddy

Смежные вопросы