我有一个appsettings.json文件,看起来像这样:
{
"someSetting": {
"subSettings": [
"one",
"two",
"three"
]
}
}
当我构建配置根目录并执行类似
config["someSetting:subSettings"]
的操作时,它将返回null,而实际的可用设置如下所示:config["someSettings:subSettings:0"]
有没有更好的方法来检索
someSettings:subSettings
的内容作为列表? 最佳答案
您可以使用配置绑定(bind)程序来获得配置源的强类型表示。
这是我之前编写的测试中的一个示例,希望对您有所帮助:
[Fact]
public void BindList()
{
var input = new Dictionary<string, string>
{
{"StringList:0", "val0"},
{"StringList:1", "val1"},
{"StringList:2", "val2"},
{"StringList:x", "valx"}
};
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddInMemoryCollection(input);
var config = configurationBuilder.Build();
var list = new List<string>();
config.GetSection("StringList").Bind(list);
Assert.Equal(4, list.Count);
Assert.Equal("val0", list[0]);
Assert.Equal("val1", list[1]);
Assert.Equal("val2", list[2]);
Assert.Equal("valx", list[3]);
}
重要的部分是对
Bind
的调用。测试和更多示例在GitHub上