NetCore 操作配置文件
默认配置 appsettings.json
环境配置 launchSettings.json,即开发时运行配置

添加依赖
Install-Package Microsoft.Extensions.Configuration Install-Package Microsoft.Extensions.Configuration.Binder Install-Package Microsoft.Extensions.Configuration.Json
获取默认配置
string sqlConn = builder.Configuration.GetConnectionString("Default")
如:配置数据库连接字符串
builder.Services.AddDbContext<Service.DataContext>(opt => {
opt.UseSqlServer(builder.Configuration.GetConnectionString("Default"));
});
添加自定义JSON配置文件
builder.Host.ConfigureAppConfiguration((hostingContext, config) =>
{
config.Sources.Clear();
config.AddJsonFile("redis.json", optional: false, reloadOnChange: true);
});
配置文件帮助类
/// <summary>
/// 读取配置文件帮助类
/// 注册服务: builder.Services.AddSingleton(new AppSettings());
/// 使用示例:
/// string data = AppSettings.ReadString(key);
/// DataConfig dataConfig = AppSettings.ReadObject<DataConfig>(key);
/// </summary>
public class AppSettings
{
#region 注入参数
/// <summary>
/// 配置文件
/// </summary>
private static IConfiguration? _config;
#endregion
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
/// <param name="configuration">配置文件</param>
public AppSettings()
{
_config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", true, reloadOnChange: true)
.Build();
}
#endregion
#region 静态方法
/// <summary>
/// 读取指定节点信息
/// </summary>
/// <param name="sessions">节点名称</param>
/// <returns></returns>
public static string ReadString(params string[] sessions)
{
try
{
if (_config != null && sessions.Any())
{
string? str = _config[string.Join(":", sessions)];
if (!string.IsNullOrEmpty(str))
{
return str;
}
}
}
catch
{
return string.Empty;
}
return string.Empty;
}
/// <summary>
/// 读取实体信息
/// </summary>
/// <param name="sessions">节点名称</param>
/// <returns></returns>
public static T ReadObject<T>(params string[] sessions) where T : class, new()
{
T data = new();
try
{
if (_config != null && sessions.Any())
{
_config.Bind(string.Join(":", sessions), data);
}
}
catch
{
return data;
}
return data;
}
/// <summary>
/// 读取实体数组信息
/// </summary>
/// <param name="sessions">节点名称</param>
/// <returns></returns>
public static List<T> ReadList<T>(params string[] sessions) where T : class
{
List<T> list = new();
try
{
if (_config != null && sessions.Any())
{
_config.Bind(string.Join(":", sessions), list);
}
}
catch
{
return list;
}
return list;
}
#endregion
}
注册服务
// 配置文件,放在第一句,并注册为Singleton builder.Services.AddSingleton(new AppSettings());
使用示例
string data = AppSettings.ReadString("key");
DataConfig dataConfig = AppSettings.ReadObject<DataConfig>("key");

浙公网安备 33010602011771号