首页 > 解决方案 > 从 appsettings.json 配置文件中读取

问题描述

我的 appsettings.json 文件中有以下配置

 {
  "AppSettings": {
    "MainUser": {
      "Name": "Urs",
      "Surname": "Barandun",
      "SesstionTimeInMin": "30",
    }
  },

我想创建一个自定义配置类并绑定它。例如:

MainUserConfiguration mainUserConfiguration = new MainUserConfiguration();
var configSection = config.GetSection("MainUserConfiguration");
configSection.Bind(mainUserConfiguration);

但是,我的代码不起作用。:/

标签: c#loggingconfiguration

解决方案


根据您提供的内容,您的 appsettings 文件和您的配置的嵌套 JSON 不匹配。典型的 ASP.NET Coreappsettings.json没有称为“AppSettings”的嵌套元素,而且您将获得一个名为“MainUserConfiguration”的配置部分,而您的实际 JSON 只是将该部分命名为“MainUser”。

应用设置示例:

{
  "MyFirstClass": {
    "Option1": "some string value",
    "Option2": 42
  },
  "MySecondClass": {
    "SettingOne": "some string value",
    "SettingTwo": 42
  }
}

在您的代码中:

public class MyFirstClass
{
    public string Option1 { get; set; }
    public int Option2 { get; set; }
}

public class MySecondClass
{
    public string SettingOne { get; set; }
    public int SettingTwo { get; set; }
}

在您的 Startup.cs 中(假设您正在使用已定义的Configuration对象访问它:

var myFirstClass = Configuration.GetSection("MyFirstClass").Get<MyFirstClass>();
var mySecondClass = Configuration.GetSection("MySecondClass").Get<MySecondClass>();
Console.WriteLine($"The answer is always {myFirstClass.Option2}");

推荐阅读