Я пытаюсь выполнить десериализацию с помощью json.net объекта с несколькими детьми.
У меня есть специальный конвертер для преобразования Duty, который наследуется от класса BaseDuty с его Задачами, который отлично работает при вызове с
JsonConvert.Deserialize<Duty>(json, new CustomJsonConverter());
Однако при звонке
JsonConvert.Deserialize<Person>(json,new CustomJsonConverter());
CanConvert пользовательского конвертера json запускается ... но не проверяется, как при вызове класса, для которого он был написан. И что в итоге происходит, так это то, что он продолжает преобразовываться в базовый класс, а это не то, что я хочу делать, так как преобразователь правильно преобразовывает его.
Итак, мой вопрос: как лучше всего указать конвертеры для дочерних объектов на графике, как показано ниже?
Ниже приведен пример:
public class Person
{
public virtual string Name { get; set; }
public virtual IList<Occupation> Occupations { get;set;}
public virtual IList<RandomProperty> RandomProperties {get;set;}
}
public class Occupation
{
public IList<Duty> Duties {get;set;}
}
public class Duty : BaseDuty
{
public IList<Task> Tasks {get;set;}
}
public class BaseDuty
{
public string Name {get;set;}
}
Спасибо