using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; /// /// 需要引用包 /// Microsoft.Extensions.Configuration; /// Microsoft.Extensions.DependencyInjection; namespace Infrastructure { public class ConfigUtils { #region 单例访问 static ConfigUtils() { Config = App.ServiceProvider.GetRequiredService(); if (Instance == null) Instance = new ConfigUtils(); } public static ConfigUtils Instance { get; private set; } #endregion private static IConfiguration Config { get; set; } /// /// 泛型读取配置文件 /// 目前还不能绑定到实体类 /// /// 获取不到配置文件设定默认值 /// 要获取的配置文件节点名称 /// //public T GetConfig(string key, T defaultValue = default) //{ // //GetValue扩展包需要安装Microsoft.Extensions.Configuration // var setting = Config.GetValue(key, defaultValue); // Console.WriteLine($"获取配置文件值key={key},value={setting}"); // return setting; //} public T GetAppConfig(string key, T defaultValue = default(T)) { T setting = (T)Convert.ChangeType(Config[key], typeof(T)); var value = setting; if (setting == null) value = defaultValue; //Console.WriteLine($"获取配置文件值key={key},value={value}"); return value; } /// /// 获取配置文件 /// /// eg: WeChat:Token /// public string GetConfig(string key) { return Config[key]; } /// /// 获取数据库字符串连接串 /// /// /// public string GetConnectionStrings(string key) { return Config.GetConnectionString(key); } } }