Json.Net не может сериализовать свойство класса, полученное из словаря
У меня есть класс, который получен из словаря. Также сам класс имеетClientId
имущество. Я хочу десериализовать коллекцию этого класса в строку JSON, используяJson.Net
Так следовало за документациейВот
public interface IClientSettings: IDictionary<string, string>
{
string ClientId { get; set; }
}
public class ClientSettings : Dictionary<string, string>, IClientSettings
{
public string ClientId { get; set; }
}
а затем я десериализовать список в строку
var list = new List<IClientSettings>();
var client1 = new ClientSettings();
client1.ClientId = "Client1";
client1.Add("key1", "value1");
client1.Add("key2", "value2");
client1.Add("key3", "value3");
var client2 = new ClientSettings();
client1.ClientId = "Client2";
client2.Add("key1", "value1");
client2.Add("key2", "value2");
client2.Add("key3", "value3");
list.Add(client1);
list.Add(client2);
string json = JsonConvert.SerializeObject(list, Formatting.Indented);
Console.WriteLine(json);
Однако это не сериализуетсяClientid
имущество. Ниже вывод.
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
]
Я не уверен, что мне здесь не хватает. Я также нашел предложениеВот которые предлагают сделать пользовательскую сериализацию, это единственный вариант, который у меня есть?