如何阅读 ASP.NET Core 3.1 中 appsettings.json 的整个部分?
How to read a whole section from appsettings.json in ASP.NET Core 3.1?
我想从 appsettings.json 中获取整个部分。
这是我的 appsettings.json:
{
"AppSettings": {
"LogsPath": "~/Logs",
"SecondPath": "~/SecondLogs"
}
}
C#:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(this.SettingsFilesName);
configuration = builder.Build();
此语法工作正常并且 returns "~/Logs" :
configuration.GetSection("AppSettings:LogsPath");
但是我怎样才能拥有所有 "AppSettings" 部分呢?可能吗?
此语法无效,值 属性 为空。
configuration.GetSection("AppSettings");
更新:
我没有模型,在class中阅读。我正在寻找这样的东西:
var all= configuration.GetSection("AppSettings");
并像
一样使用它
all["LogsPath"] or all["SecondPath"]
他们return他们对我的价值观。
这是设计使然
有
var configSection = configuration.GetSection("AppSettings");
configSection
没有值,只有键和路径。
当 GetSection
returns 匹配部分时,Value
未填充。当该部分存在时返回 Key
和 Path
。
例如,如果您定义一个模型来将部分数据绑定到
class AppSettings {
public string LogsPath { get; set; }
public string SecondPath{ get; set; }
}
并绑定到部分
AppSettings settings = configuration.GetSection("AppSettings").Get<AppSettings>();
您会看到整个部分将被提取并填充模型。
这是因为该部分将遍历其子项并在根据匹配 属性 名称与部分中的键填充模型时提取它们的值。
var configSection = configuration.GetSection("AppSettings");
var children = configSection.GetChildren();
我想从 appsettings.json 中获取整个部分。
这是我的 appsettings.json:
{
"AppSettings": {
"LogsPath": "~/Logs",
"SecondPath": "~/SecondLogs"
}
}
C#:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(this.SettingsFilesName);
configuration = builder.Build();
此语法工作正常并且 returns "~/Logs" :
configuration.GetSection("AppSettings:LogsPath");
但是我怎样才能拥有所有 "AppSettings" 部分呢?可能吗?
此语法无效,值 属性 为空。
configuration.GetSection("AppSettings");
更新:
我没有模型,在class中阅读。我正在寻找这样的东西:
var all= configuration.GetSection("AppSettings");
并像
一样使用它all["LogsPath"] or all["SecondPath"]
他们return他们对我的价值观。
这是设计使然
有
var configSection = configuration.GetSection("AppSettings");
configSection
没有值,只有键和路径。
当 GetSection
returns 匹配部分时,Value
未填充。当该部分存在时返回 Key
和 Path
。
例如,如果您定义一个模型来将部分数据绑定到
class AppSettings {
public string LogsPath { get; set; }
public string SecondPath{ get; set; }
}
并绑定到部分
AppSettings settings = configuration.GetSection("AppSettings").Get<AppSettings>();
您会看到整个部分将被提取并填充模型。
这是因为该部分将遍历其子项并在根据匹配 属性 名称与部分中的键填充模型时提取它们的值。
var configSection = configuration.GetSection("AppSettings");
var children = configSection.GetChildren();