如何从核心控制台 appSettings.json 文件中获取字符串数组
How to get string array from core console appSettings.json file
如何从 IConfigurationRoot
对象中 return 一个 string[]
?
文件存在并设置为复制到输出
代码
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("settings.json", optional: false, reloadOnChange: false);
_configuration = builder.Build();
var arr = _configuration["stringArray"]; // this returns null
var arr1 = _configuration["stringArray:0"]; // this works and returns first element
Settings.json
{
"stringArray": [
"myString1",
"myString2",
"myString3"
]
}
使用 GetValue<TResult>
扩展获取节的值。
// Requires NuGet package "Microsoft.Extensions.Configuration.Binder"
var array = _configuration.GetValue<string[]>("stringArray");
或尝试绑定到部分
var values = new List<string>();
_configuration.Bind("stringArray", values);
也可以使用 ConfigurationBinder.Get<T>
语法,这样代码会更紧凑:
List<string values = _configuration.GetSection("stringArray").Get<string[]>();
如何从 IConfigurationRoot
对象中 return 一个 string[]
?
文件存在并设置为复制到输出
代码
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("settings.json", optional: false, reloadOnChange: false);
_configuration = builder.Build();
var arr = _configuration["stringArray"]; // this returns null
var arr1 = _configuration["stringArray:0"]; // this works and returns first element
Settings.json
{
"stringArray": [
"myString1",
"myString2",
"myString3"
]
}
使用 GetValue<TResult>
扩展获取节的值。
// Requires NuGet package "Microsoft.Extensions.Configuration.Binder"
var array = _configuration.GetValue<string[]>("stringArray");
或尝试绑定到部分
var values = new List<string>();
_configuration.Bind("stringArray", values);
也可以使用 ConfigurationBinder.Get<T>
语法,这样代码会更紧凑:
List<string values = _configuration.GetSection("stringArray").Get<string[]>();