欢迎光临
个人技术文档整理

.net core 读取Json文件配置文件的几种方式

Json配置文件

{
  "name": "aaa",
  "Domain": {
    "ImgUrl": "aaaa",
    "H5Url": "bbbb"
  },
  "Connections": [
    {
      "Key": "default",
      "Value": "Data Source=.,1433;Initial Catalog=xxx;Persist Security Info=True;User ID=sa;Password=123",
      "DbContext": "DataContext",
      "DBType": "SqlServer"
    }
  ]
}

NuGit安装 基础包

Install-Package Microsoft.Extensions.Configuration;

Install-Package Microsoft.Extensions.Configuration.Json

读取方式

        //手动读取配置
            ConfigurationBuilder configBuilder = new ConfigurationBuilder();
            configBuilder.AddJsonFile("config.json",
                optional: false,//optional=false 的时候 如果无文件 会报错
                reloadOnChange: false);//reloadOnChange=如果文件修改了,重新加载配置
            IConfigurationRoot configRoot = configBuilder.Build();

            string name = configRoot["name"];

            string ImgUrl = configRoot.GetSection("Domain:ImgUrl").Value;
            string ImgUrl2 = configRoot["Domain:ImgUrl"];

            var ConnectionsValue = configRoot.GetSection("Connections:0:Value");

 

第二种:绑定类读取配置

NuGet 安装:Microsoft.Extensions.Configuration.Binder
//绑定类
 public class Config
    {
        public string Name { get; set; }

        public List<ConfigConnection> Connections { get; set; }
    }
    public class ConfigConnection
    {
        public string Key { get; set; }
        public string Value { get; set; }
        public string DbContext { get; set; }
        public string DBType { get; set; } 
    }
       /// <summary>
        /// 绑定类读取配置
        /// 绑定一个类,自动完成额配置的读取
        /// NuGet 安装:Microsoft.Extensions.Configuration.Binder
        /// </summary>
        public static string GetValue2(string key)
        {
            ConfigurationBuilder configBuilder = new ConfigurationBuilder();
            configBuilder.AddJsonFile("config.json",
                optional: false,//optional=false 的时候 如果无文件 会报错
                reloadOnChange: false);//reloadOnChange=如果文件修改了,重新加载配置
            IConfigurationRoot configRoot = configBuilder.Build();

            var config = configRoot.Get<Config>();//整个json结构
            //var config = configRoot.GetSection("Connections").Get<Config>();//Connections节点的
            return config.Name;
        }

 

赞(1)