如何从.net核心中的appsettings.json中提取列表
我有一个appsettings.json文件,如下所示:
{ "someSetting": { "subSettings": [ "one", "two", "three" ] } }
当我构建我的配置根,并执行类似config["someSetting:subSettings"]
它返回null,并且可用的实际设置如下所示:
config["someSettings:subSettings:0"]
有没有更好的方法来检索someSettings:subSettings
的内容someSettings:subSettings
作为列表?
您可以使用配置绑定器获取配置源的强类型表示。
这是我之前写过的测试的一个例子,希望它有所帮助:
[Fact] public void BindList() { var input = new Dictionary { {"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(); 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上
假设你的appsettings.json
看起来像这样:
{ "foo": { "bar": [ "1", "2", "3" ] } }
您可以像这样提取列表项:
Configuration.GetSection("foo:bar").Get>()
- 使用Postman上传ASP核心WebApi测试文件
- 在dotnet核心中读取json文件时出错“已达到inotify实例数量的已配置用户限制(128)”
- 在没有IOptions 的情况下从appsettings.json读取和使用设置?
- 如何在net-core 2.0中手动解析JSON字符串
- 在.NET Core中使用Ninject
- 将.net核心与遗留的.net框架dll一起使用
- UWP NetworkConnectionChanged事件
- 如何从Entity Framework Core中的DbContext获取列名和相应的数据库类型
- Azure Notification Hubs包是否与.NET Core兼容?