Я пытаюсь сериализовать и десериализовать свойство типа 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, и вместо этого я получаю .
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]. –