Я хотел бы использовать привязку конфигурации для загрузки строго типизированного класса.
Как часть этого класса, существует IList<KeyValuePair<string,string>>
. Это свойство продолжает возвращаться пустым, и я понятия не имею, почему.
Поддерживается ли KeyValuePair<string,string>
? Он будет работать с пользовательским POCO.
Пример кода:
//POCO Classes and Sample Code
public class FieldMap
{
public string Key { get; set; }
public string Value { get; set; }
}
public class EntityMap
{
public IList<KeyValuePair<string, string>> KeyValues { get; set; }
public IList<FieldMap> FieldMaps { get; set; }
}
public Configuration()
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.Build();
var entityMaps = new Models.EntityMap();
var entitySection = configuration.GetSection("EntityMaps");
entitySection.Bind(entityMaps);
System.Diagnostics.Debug.Assert(entityMaps.FieldMaps.Count > 0);
System.Diagnostics.Debug.Assert(entityMaps.KeyValues.Count > 0);
}
JSON Конфиг:
{
"EntityMaps": {
"KeyValues": [
{
"Key": "fred",
"Value": "fredly"
}
],
"FieldMaps": [
{
"Key": "fred",
"Value": "fredly"
}
]
}
}