using System; using System.IO; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.Json; using Microsoft.Extensions.Configuration.Binder; using System.Collections.Generic; namespace CommonUtil { /// /// 配置工具类 /// public class ConfigUtil { /// /// 配置项容器 /// public static IConfiguration Configuration { get; set; } /// /// 静态构造函数 /// static ConfigUtil() { string fileName = "appsettings.json"; string directory = AppContext.BaseDirectory; directory = directory.Replace("\\", "/"); string filePath = $"{directory}/{fileName}"; if (!File.Exists(filePath)) { int length = directory.IndexOf("/bin"); filePath = $"{directory.Substring(0, length)}/{fileName}"; } Configuration = new ConfigurationBuilder() .Add(new JsonConfigurationSource { Path = fileName, ReloadOnChange = true }) .Build(); } /// /// 读取配置文件值 /// /// 指定类型 /// 键 /// public static T GetValue(string key) { return GetValue(key, default(T)); } /// /// 读取配置文件值 /// /// 指定类型 /// 键 /// 如果未找到该键,则过载允许你提供默认值 /// public static T GetValue(string key, T defaultValue) { return Configuration.GetValue(key, defaultValue); } /// /// 判断是否存在key /// /// /// public static bool IsExist(string key) { return Configuration.GetSection(key).Exists(); } /// /// 判断是否存在key /// /// /// public static IEnumerable GetChildren(string key) { return Configuration.GetSection(key).GetChildren(); } } }