Net Core 读取json文件

一种是网上常见的一种

  var builder1 = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
  var configuration = builder1.Build();
  string baseUrl = configuration.GetSection("ConnectionStrings:xxx").Value;

另外一种是

var config = new ConfigurationBuilder()
                          .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                        //.AddEnvironmentVariables()
                         .Build();
            Configuration = config.GetSection("ConnectionStrings:xxx");

 

 

环境
   ASP.NET Core使用ASPNETCORE_ENVIRONMENT来标识运行时环境。

ASP.NET Core预设环境
Development:开发环境
Staging:暂存环境(测试环境)
Production:正式环境

  var buildr = new HostBuilder();
            //获取环境变量
            var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            //加载配置文件ConfigurationBuilder
            var config = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
                .AddEnvironmentVariables()
                .Build();
                
                
通过上述代码我们,读取我们的配置文件会先读取setting.json并设置为optional: false,表示该配置为必要的配置;再往下继续读取再读取settings.{env.EnvironmentName}.json文件。当加载遇到相同的Key那么就会覆盖掉前面的配置项。

SetBasePath:设置配置的目录位置,如果是放在不同目录,再把路径换掉即可。
AddJsonFile:
path:文件的路径位置。
optional:如果是必要的配置文件,可选就要设定为false,当文件不存在就会引发FileNotFoundException。
reloadOnChange:如果文件被更新,就同步更新IConfiguration实例的值。

 

posted @ 2021-04-25 18:37  ProZkb  阅读(524)  评论(0编辑  收藏  举报