public override T GetSetting <T>(IConfiguration config) { T result = default; result = base.GetSetting <T>(config); if (result != null) { PropertyInfo[] piArray = typeof(T).GetProperties(); foreach (var pi in piArray) { string data = config[pi.Name]; try { if (!data.IsEmptyString()) { pi.SetValue(result, data.ToObject(pi.PropertyType)); } } catch (Exception ex) { Printor.PrintText($"配置项有误:[{pi.Name}]"); Printor.PrintLine(); throw ex; } } } return(result); }
/// <summary> /// 加载配置 /// </summary> /// <param name="configBuilder"></param> /// <param name="configFiles"></param> /// <returns></returns> public static IConfigurationBuilder LoadConfiguration(this IConfigurationBuilder configBuilder, params string[] configFiles) { var envName = EEnvironment.ToString(); Printor.PrintText("环境变量:" + envName); configBuilder .SetBasePath(RootPath) .AddJsonFile($"appsettings.json", true, false); if (!envName.IsEmptyString()) { configBuilder.AddJsonFile($"appsettings.{envName}.json", true, false); } if (configFiles != null) { foreach (var file in configFiles) { configBuilder.AddJsonFile(file, true, false); } } return(configBuilder); }
public StartupBasic(IConfiguration configuration) { Configuration = configuration; CurConfig = Configuration.GetSetting <T>(); JsonSerializerSettings = SetJsonSerializerSettings(); Printor.PrintText(CurConfig.ToJson()); Printor.PrintLine(); }
/// <summary> /// 记录 /// </summary> /// <param name="text"></param> protected void Info(string text) { Printor.PrintText(text); if (Logger != null) { Logger.Info(text); } }
protected void Error(string text, Exception ex) { Printor.PrintText(text); if (Logger != null) { Logger.Error(text, ex); } }
/// <summary> /// 加载运行参数 /// </summary> /// <param name="configBuilder"></param> /// <param name="args"></param> /// <param name="funcArray"></param> /// <returns></returns> public static IConfigurationBuilder LoadRunningSettings(this IConfigurationBuilder configBuilder, string[] args, params LoadRunningSettingsDelegate[] funcArray) { List <string> argList = args != null && args.Length > 0 ? args.ToList() : new List <string>(); Printor.PrintText("启动参数:"); Printor.PrintText("{"); argList.ForEach(o => { Printor.PrintText(" " + o); }); Printor.PrintText("}"); Printor.PrintLine(); foreach (var func in funcArray) { func(configBuilder, argList); } return(configBuilder); }