c#-序列化使用Json.Net声明为新的继承属性不起作用
作者:互联网
Json.Net在序列化子类中的重写属性时没有问题.
public override ICollection<Person> Persons { get; set; }
但是,如果我尝试对该属性使用new,则序列化将失败.也不例外.人只是从不序列化.
public new ICollection<Person> Persons { get; set; }
为什么是这样?
(我知道,这个示例没有多大意义.这只是一个示例.以后的目标是能够更改属性public new ICollection< PersonDto> Persons {get; set;}的数据类型)
解决方法:
我发现了一种无需创建自定义JsonConverter的简单方法即可解决此问题
如果将属性JsonProperty放在该属性上,它将起作用.
[JsonProperty]
public new ICollection<PersonDto> Persons { get; set; }
我不知道为什么Json.Net在这里需要该属性.通常,它会序列化所有未用JsonIgnore装饰的内容.如果有人知道,欢迎您发表评论.
标签:serialization,json-net,c 来源: https://codeday.me/bug/20191201/2080170.html