检索appsettings.json中设置的json数组时遇到问题。
使用 Configuration.GetSection(“ xxx”)。GetChildren()来获取json数组时,返回值为null。然后,我使用下面的方法解决了问题,并成功了。
在appsettings.json中:
{
"EndPointConfiguration": [
{
"UserName": "TestUser",
"Email": "Test@global.com"
},
{
"UserName": "TestUser",
"Email": "Test@global.com"
}
]
}
然后我创建课程:
public class EndPointConfiguration
{
public string UserName { get; set; }
public string Email { get; set; }
}
最后,使用EndPointConfiguration类的数组将起作用:
var endPointConfiguration = Configuration.GetSection("EndPointConfiguration").Get<EndPointConfiguration[]>();
.net核心对我来说还很陌生,所以为什么Configuration.GetSection()。GetChildren()无法工作。谁能熟练地提供答案?谢谢。
答案 0 :(得分:1)
GetChildren()
方法将返回IEnumerable<IConfigurationSection>
,如果使用简单类型(例如字符串列表),这将非常有用。例如:
{
"EndPointUsernames": [
"TestUser1",
"TestUser2",
"TestUser3",
"TestUser4"
]
}
可以很容易地添加到字符串数组中,而无需定义单独的类,例如EndPointConfiguration
。从这里您可以简单地致电
string[] userNames = Configuration.GetSection("EndPointUsernames").GetChildren().ToArray().Select(c => c.Value).ToArray();
检索这些值。在示例中,您已将结果强烈键入EndPointConfiguration
对象列表中。