雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

.NET Core 读取配置文件方法

2024-10-15 45

在.NET Core中使用appsettings.json配置文件。

假设我们的示例配置文件是这样的

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  //"urls": "http://*:8000"

  "ConnectionString": "data source=.;initial catalog=db;user id =sa",
  "WebSetting": {
    "WebName": "ASP.NET Core",
    "Title": "Hello Title",
    "Behavior": {
      "IsCheckIp": true,
      "MaxConnection": 300
    }
  }
}

在主机配置的时候已经把IConfiguration注入了,使用的时候直接在构造方法注入即可。

假设我们要在Startup类种读取配置文件信息,那么

private readonly IConfiguration _configuration;
//主机配置的时候框架已经注入了
public Startup(IConfiguration configuration)
{
    _configuration = configuration;
}

单个读取配置方法

//单个读取配置方法
var connectionString = _configuration["ConnectionString"];
var title = _configuration["WebSetting:Title"];

绑定配置模型对象

按配置文件结构创建一个实体类,然后绑定

var appSetting = new SettingModel();
_configuration.Bind(appSetting);
var title1 = appSetting.WebSetting.Title;
//配置类
public class SettingModel
    {
        public string ConnectionString { get; set; }
        public WebSetting WebSetting { get; set; }

    }
    public class WebSetting { 
        public string WebName { get; set;}
        public string Title { get; set; }
        public Behavior Behavior { get; set; }
    }
    public class Behavior { 
        public bool? IsCheckIp { get; set; }
        public int? MaxConnection { get; set; }
    }

部分绑定

只需要读取一部分的配置

var webSetting = new WebSetting();
_configuration.GetSection("WebSetting").Bind(webSetting);

注册配置选项的服务

services.Configure<SettingModel>(_configuration);

注册之后,在需要使用的地方直接注入即可

public void Func(IOptions<SettingModel> appOptions){
    var a = appOptions.Value.WebSetting.Behavior;
}

自定义配置文件

假设自己创建了一个customsetting.json配置文件,读取方法

var config = new ConfigurationBuilder().AddJsonFile("customsetting.json").Build();
            var name = config["Name"];
更新于:27天前
赞一波!

文章评论

评论问答