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); }
public StartupBasic(IConfiguration configuration) { Configuration = configuration; CurConfig = Configuration.GetSetting <T>(); JsonSerializerSettings = SetJsonSerializerSettings(); Printor.PrintText(CurConfig.ToJson()); Printor.PrintLine(); }
/// <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); }