0
我试图从服务器发送数据到客户端时序列化和反序列化Dictionary<string, int>
类型的属性。Json.Net无法反序列化具有多个泛型类型的对象?
所以,如果我这个序列化对象的简化:
class Foo
{
public Dictionary<string, int> Bar { get; set; }
}
我得到这个漂亮的JSON(使用TypeNameHandling.All):
{
"$type": "Foo",
"Bar": {
"$type": "Dictionary<String, Int32>"
}
}
的问题是在反序列化一侧我使用自定义的Binder来覆盖BindToType以反序列化。但是当这样做时,typeName是不正确的,而我得到"Dictionary<String"
。
public override Type BindToType(string assemblyName, string typeName)
{
if (typeName == "Dictionary<String, Int32>")
{
// I never get here because typeName is "Dictionary<String"
return typeof(Dictionary<string, int>);
}
// ...
}
你为什么不使用JsonConverers反序列化/ –
@Amit库马尔戈什欢迎你,如果你想发布一个例子作为一个答案。但要记住;大多数时候我不知道在反序列化方面期望什么类型的对象。 – einord
请发表[mcve]。 –