[英]Serializing/Deserializing Type properties in Json.net (9.x)
我有一个像
public MyObject
{
[JsonProperty("id")]
public Guid Id { get; set; }
[JsonProperty("type")]
public Type Type { get; set; }
}
我使用序列化设置
new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
};
序列化为
{
"id": "00000000-0000-0000-0000-000000000000",
"type": "SomeNamespace.SomeType, SomeAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
}
但随后无法反序列化,出现错误
System.ArgumentException
无法将System.String强制转换或转换为System.Type。
Json.Net 9.0.x版有一个简单的修复程序吗?
我运行了以下代码,它在Newtonsoft 9.0.1中正常运行
private void TestJson()
{
var jsonSettings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
};
var myObj = new MyObject
{
Type = typeof(string)
};
var serialize = JsonConvert.SerializeObject(myObj, jsonSettings);
var newObj = JsonConvert.DeserializeObject<MyObject>(serialize, jsonSettings);
}
输出:
DLL信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.