我将尝试使用json.net对一个具有几个子元素的对象进行反序列化。
我有一个自定义转换器,可以将从BaseDuty类继承而来的Duty和它的Tasks进行转换。当使用以下命令时,该转换器正常工作:
然而,在调用时
自定义的JSON转换器的CanConvert确实会触发,但它不像针对编写该转换器的类进行调用时那样进行验证。结果就是它会不断转换为基类,这不是我想要的,因为转换器正确地进行了转换。
所以,我的问题是如何最好地指定图形中子对象的转换器?
以下是一个示例:
我有一个自定义转换器,可以将从BaseDuty类继承而来的Duty和它的Tasks进行转换。当使用以下命令时,该转换器正常工作:
JsonConvert.Deserialize<Duty>(json, new CustomJsonConverter());
然而,在调用时
JsonConvert.Deserialize<Person>(json,new CustomJsonConverter());
自定义的JSON转换器的CanConvert确实会触发,但它不像针对编写该转换器的类进行调用时那样进行验证。结果就是它会不断转换为基类,这不是我想要的,因为转换器正确地进行了转换。
所以,我的问题是如何最好地指定图形中子对象的转换器?
以下是一个示例:
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;}
}
谢谢