绑定来自 appsettings.json 的字符串列表
Bind list of string from appsettings.json
我的 appSettings 中定义了以下字符串列表
"AllowedGroups": [ "support", "admin", "dev" ]
我想在启动时将它绑定到 class 以进行依赖注入。
这是我的模型class
public class AllowedGroups
{
public List<string> Groups { get; set; }
}
这就是我尝试绑定它的方式。
services.Configure<AllowedGroups>(Configuration.GetSection("AllowedGroups"));
我想以这种格式保留 appsettings 文件,但我不知道应该如何相应地定义模型 class 以及如何绑定它。
我知道他可能希望 "AllowedGroups":{Groups: [ "support", "admin", "dev" ]}
使用当前模型
你可以这样做:
_config.GetConfigSection("AllowedGroups").GetChildren().ToList();
_config 派生自 IConfiguration。
如果你想保留配置结构,你可以“原始”解析所有内容:
var allowedGroups = Configuration.GetSection("AllowedGroups").Get<List<string>>();
services.AddSingleton(new AllowedGroups {Groups = allowedGroups});
请注意,这只会注册 AllowedGroups
而不是 options as Configure
does. TO register options you can use next overload of Configure
:
services.Configure<AllowedGroups>(allowedGroups =>
allowedGroups.Groups = Configuration.GetSection("AllowedGroups").Get<List<string>>());
我的 appSettings 中定义了以下字符串列表
"AllowedGroups": [ "support", "admin", "dev" ]
我想在启动时将它绑定到 class 以进行依赖注入。
这是我的模型class
public class AllowedGroups
{
public List<string> Groups { get; set; }
}
这就是我尝试绑定它的方式。
services.Configure<AllowedGroups>(Configuration.GetSection("AllowedGroups"));
我想以这种格式保留 appsettings 文件,但我不知道应该如何相应地定义模型 class 以及如何绑定它。
我知道他可能希望 "AllowedGroups":{Groups: [ "support", "admin", "dev" ]}
使用当前模型
你可以这样做:
_config.GetConfigSection("AllowedGroups").GetChildren().ToList();
_config 派生自 IConfiguration。
如果你想保留配置结构,你可以“原始”解析所有内容:
var allowedGroups = Configuration.GetSection("AllowedGroups").Get<List<string>>();
services.AddSingleton(new AllowedGroups {Groups = allowedGroups});
请注意,这只会注册 AllowedGroups
而不是 options as Configure
does. TO register options you can use next overload of Configure
:
services.Configure<AllowedGroups>(allowedGroups =>
allowedGroups.Groups = Configuration.GetSection("AllowedGroups").Get<List<string>>());