.Net Core3.0 WebApi 三:读取appsettings.json
.Net Core3.0 WebApi 目录
appsettings.json
我们在写项目时往往会把一些经常变动的,可能会变动的参数写到配置文件、数据库中等可以存储数据且方便配置的地方,这样会方便我们在项目上线以后做相对应的配置工作。
.Core WebApi项目中我们将把配置文件统一放在appsettings.json文件中,我们将将写一个读取配置文件的公用类。
新建公共类库
新建类库Webapi.Core.Infrastructure,(基础设施)用来存放一些公用的方法
使用Nuget安装Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.Json,Microsoft.Extensions.Configuration.Binder, 编辑ConfigHelper.cs,代码如下:
namespace WebApi.Core.Infrastructure.Helpers { public class ConfigHelper { private static readonly IConfiguration _configuration; static ConfigHelper() { //在当前目录或者根目录中寻找appsettings.json文件 var fileName = "appsettings.json"; var directory = AppContext.BaseDirectory; directory = directory.Replace("\\", "/"); var filePath = $"{directory}/{fileName}"; if (!File.Exists(filePath)) { var length = directory.IndexOf("/bin"); filePath = $"{directory.Substring(0, length)}/{fileName}"; } var builder = new ConfigurationBuilder() .AddJsonFile(filePath, false, true); _configuration = builder.Build(); } /// <summary> /// 获取Section的值 /// </summary> /// <param name="key"></param> /// <returns></returns> public static string GetSectionValue(string key) { return _configuration.GetSection(key).Value; } /// <summary> /// 获取ConnectionStrings下的值 /// </summary> /// <param name="key"></param> /// <returns></returns> public static string GetConnectionString(string key) { return _configuration.GetConnectionString(key); } } }
读取appsettings.json
编辑appsetting.json,添加一个红色部分
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=db;User ID=uid;Password=123456;Pooling=True;Max Pool Size=512;Connect Timeout=500;"
}
}
var connStr = ConfigHelper.GetConnectionString("ConnectionString"); Console.WriteLine(connStr);
这样就读取到了。还有另外一个方法,感兴趣的,可以自行去尝试,看看是怎么用的。