Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        public StartupBasic(IConfiguration configuration)
        {
            Configuration          = configuration;
            CurConfig              = Configuration.GetSetting <T>();
            JsonSerializerSettings = SetJsonSerializerSettings();

            Printor.PrintText(CurConfig.ToJson());
            Printor.PrintLine();
        }
Exemple #4
0
        /// <summary>
        /// 记录
        /// </summary>
        /// <param name="text"></param>
        protected void Info(string text)
        {
            Printor.PrintText(text);

            if (Logger != null)
            {
                Logger.Info(text);
            }
        }
Exemple #5
0
        protected void Error(string text, Exception ex)
        {
            Printor.PrintText(text);

            if (Logger != null)
            {
                Logger.Error(text, ex);
            }
        }
Exemple #6
0
        /// <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);
        }