【发布时间】:2016-08-30 10:18:37
【问题描述】:
我需要使用 json 中的 $type 属性创建一些多态类型,所以我在反序列化器中添加了自定义设置:
var jsonSerializerSetting = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto
};
但是现在有了指定的设置,我不能再反序列化数组了:
var arr = (string[])JsonConvert.DeserializeObject(@"[ 'foo' ]", jsonSerializerSetting);
结尾:
无法将类型为“Newtonsoft.Json.Linq.JArray”的对象转换为类型 'System.String[]'
即使使用默认的new JsonSerializerSettings(),它也会失败。我想它一定是在重置一些东西,但我不知道是什么。
我可以恢复数组/列表等创建并仍然保留创建多态类型的能力吗?
【问题讨论】: