如何阅读 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 未填充。当该部分存在时返回 KeyPath

例如,如果您定义一个模型来将部分数据绑定到

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();

引用Configuration in ASP.NET Core