Я пытаюсь читать письма как Словарь из файла appsettings.json. Мой json содержит:
"Words": [
"Alpha",
"Beta",
"Gama"
],
"Letters": [
{ "A": "Alpha" },
{ "B": "Bravo" },
{ "C": "Charlie" }
],
Я использую класс конфигурации:
public class AppSettingsConfiguration
{
public List<string> Words { get; set; } = default!;
public Dictionary<string, string> Letters { get; set; } = default!;
}
свойство Words исправлено при чтении из .json, но Letters выдает исключение "Невозможно создать экземпляр типа "System.String", поскольку в нем отсутствует общедоступный конструктор без параметров".
Если бы я попытался
List<(string, string)> Letters { get; set; }
or
List<KeyValuePair<string, string>> Letters { get; set; }
Я получаю все 3 строки, но все пустые - (null, null)
Что такое правильное свойство для чтения словаря?
List<Dictionary<string, string>>
. Ничего стоп данные тоже выглядят как{ "A": "Alpha" }, { "A": "Alpha", "B": "Bravo" }, { "B": "Bravo" }
. Так что там неKeyValuePair<string, string>
, а полный словарь. - person Drag and Drop   schedule 01.04.2021Letters
- это массив, а не словарь. Он содержит элементы со свойствами с именамиA
,B
,C
и т. д., поэтому его нельзя десериализовать в классKeyValuePair
, свойства которого называютсяKey
иValue
. Словарь будет"Letters": { "A":"Alpha","B":"Bravo",...}
- person Panagiotis Kanavos   schedule 01.04.2021