using Abp.Extensions; using Microsoft.Extensions.Configuration; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SiXun.BossHelper.Helper { public static class AppConfigurations { private static readonly ConcurrentDictionary<string, IConfigurationRoot> _configurationCache; static AppConfigurations() { _configurationCache = new ConcurrentDictionary<string, IConfigurationRoot>(); } public static IConfigurationRoot Get(string path, string environmentName = null, bool addUserSecrets = false) { var cacheKey = path + "#" + environmentName + "#" + addUserSecrets; return _configurationCache.GetOrAdd( cacheKey, _ => BuildConfiguration(path, environmentName, addUserSecrets) ); } private static IConfigurationRoot BuildConfiguration(string path, string environmentName = null, bool addUserSecrets = false) { var builder = new ConfigurationBuilder() .SetBasePath(path) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); if (!environmentName.IsNullOrWhiteSpace()) { builder = builder.AddJsonFile($"appsettings.{environmentName}.json", optional: true); } builder = builder.AddEnvironmentVariables(); return builder.Build(); } } }
1 using Microsoft.Extensions.Configuration; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace SiXun.BossHelper.Helper 9 { 10 public static class ConfigHelper 11 { 12 private static IConfigurationRoot _appConfiguration = AppConfigurations.Get(System.Environment.CurrentDirectory); 13 14 //用法1(有嵌套):GetAppSetting("Authentication", "JwtBearer:SecurityKey") 15 //用法2:GetAppSetting("App", "ServerRootAddress") 16 public static string GetAppSetting(string section, string key) 17 { 18 19 return _appConfiguration.GetSection(section)[key]; 20 } 21 22 public static string GetConnectionString(string key) 23 { 24 return _appConfiguration.GetConnectionString(key); 25 } 26 27 //public static T GetValue<T>(string key) 28 //{ 29 // return _appConfiguration.Get<T>(key); 30 //} 31 } 32 }
private readonly string AppId = ConfigHelper.GetAppSetting("App", "AppID");
private readonly string AppSecret = ConfigHelper.GetAppSetting("App", "AppSecret");