.net core实现读取自定义配置文件

背景

在.net core类库中读取配置文件,正常来讲我们在应用程序目录下有个appsettings.json文件对于相关配置都会放在这个json文件中,但是要是建立一个类库项目,对于一些配置比如密钥或者其他需要硬编码的数据放在JSON文件中,在.net core之前配置文件为web.config并且有相关的类来读取节点上的数据,现如今在.net core中为json文件,那么我们该如何做?.

代码实现

假如在 项目根目录下创建一个 json 文件,内容如下:

{
  "arealist": [
    {
      "title": "中院级",
      "childs": [
        {
          "id": "0",
          "name": "宁德中院"
        }
      ]
    },
    {
      "title": "各区级",
      "childs": [
        {
          "id": "1",
          "name": "蕉城区"
        },
        {
          "id": "2",
          "name": "福安市"
        },
        {
          "id": "3",
          "name": "福鼎市"
        },
        {
          "id": "4",
          "name": "霞浦县"
        },
        {
          "id": "5",
          "name": "古田县"
        },
        {
          "id": "6",
          "name": "屏南县"
        },
        {
          "id": "7",
          "name": "寿宁县"
        },
        {
          "id": "8",
          "name": "周宁县"
        },
        {
          "id": "9",
          "name": "柘荣县"
        }
      ]
    }
  ]
}

将注册服务的时候把配置文件与类绑定好值,然后在使用的时候去用

builder.Host.ConfigureAppConfiguration((hostingContext, config) =>
{
    config.AddJsonFile("areaData.json",
                        optional: true,
                        reloadOnChange: true); ;
});

然后在用的地方通过注入获取IConfiguration

  private readonly IConfiguration _config;

        public NingdeChartController(IConfiguration config, INdChartBll chartBll)
        {
            _chartBll = chartBll;
            _config = config;
        }
  var disputes = _config.GetSection("arealist").Get<List<Class1AreaModel>>();