.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);

