我的appsettings.json
中有数组
"steps": [
{
"name": "IMPORT",
"enabled": true
},
{
"name": "IMPORT_XML",
"enabled": true
},
{
"name": "COMPARE",
"enabled": true
},
{
"test_name": "COMPARE_TABLE",
"enabled": true
}]
在我的课堂上,我尝试使用IConfigurationRoot _configurationRoot
我尝试过:
var procSteps = _configurationRoot.GetSection("steps");
foreach (IConfigurationSection section in procSteps.GetChildren())
{
var key = section.GetValue<string>("test");
var value = section.GetValue<string>("enabled");
}
和:
var procSteps = _configurationRoot.GetSection("ExecutionSteps")
.GetChildren()
.Select(x => x.Value)
.ToArray();
但是他们都没有找回我的价值。有人知道情况如何,访问这种数组值的正确方法是什么?
答案 0 :(得分:4)
创建一个对象模型以保存值
public class ProcessStep {
public string name { get; set; }
public bool enabled { get; set; }
}
然后使用Get<T>
var procSteps = _configurationRoot
.GetSection("steps")
.Get<ProcessStep[]>();
ASP.NET Core 1.1及更高版本可以使用
更方便Get<T>
,它适用于整个部分。Get<T>
比使用Bind