Json.Net não pode serializar a propriedade de uma classe derivada do dicionário

Eu tenho uma classe que é derivada do dicionário. Além disso, a própria classe tem umClientId propriedade. Eu quero desserializar a coleção desta classe na string JSON usandoJson.Net Então segui a documentaçãoaqui

public interface IClientSettings: IDictionary<string, string>
{        
    string ClientId { get; set; }        
}

public class ClientSettings : Dictionary<string, string>, IClientSettings
{        
    public string ClientId { get; set; }
}

e então estou desserializando a lista em string

        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);

No entanto, isso não serializaClientid propriedade. Abaixo está a saída.

[
  {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  },
  {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  }
]

Não tenho certeza do que estou perdendo aqui. Eu também encontrei sugestõesaqui que sugerem fazer serialização personalizada, essa é a única opção que tenho?

questionAnswers(1)

yourAnswerToTheQuestion