У меня есть словарь с пользовательским типом .net как его ключ. Я пытаюсь сериализовать этот словарь в JSON с помощью JSON.net, но не способен преобразовывать ключи в правильное значение во время сериализации.
class ListBaseClass
{
public String testA;
public String testB;
}
-----
var details = new Dictionary<ListBaseClass, string>();
details.Add(new ListBaseClass { testA = "Hello", testB = "World" }, "Normal");
var results = Newtonsoft.Json.JsonConvert.SerializeObject(details);
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<ListBaseClass, string>> results);
Это даст мне → "{\" JSonSerialization.ListBaseClass\ ": \" Normal\ "}"
Однако, если у меня есть свой пользовательский тип как значение в словаре, он хорошо работает
var details = new Dictionary<string, ListBaseClass>();
details.Add("Normal", new ListBaseClass { testA = "Hello", testB = "World" });
var results = Newtonsoft.Json.JsonConvert.SerializeObject(details);
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, ListBaseClass>>(results);
Это даст мне → "{\" Normal\ ": {\" testA\ ": \" Hello\ ", \" testB\ ": \" World\ "}}"
Может ли кто-нибудь предложить, если я нахожу какое-то ограничение Json.net, или я делаю что-то не так?