예제 #1
0
        /// <summary> 添加本地Json配置 </summary>
        /// <param name="builder"></param>
        /// <param name="dirPath"></param>
        /// <returns></returns>
        public static ISpearConfigBuilder AddLocal(this ISpearConfigBuilder builder, string dirPath = null)
        {
            var configPath = string.IsNullOrWhiteSpace(dirPath) ? "configPath".Config <string>() : dirPath;

            if (string.IsNullOrWhiteSpace(configPath))
            {
                return(builder);
            }
            configPath = Path.Combine(Directory.GetCurrentDirectory(), configPath);
            if (!Directory.Exists(configPath))
            {
                return(builder);
            }
            CurrentIocManager.CreateLogger(typeof(ConfigBuilderExtensions)).LogInformation($"正在加载本地配置[{configPath}]");
            var jsons = Directory.GetFiles(configPath, "*.json");

            if (jsons.Any())
            {
                foreach (var json in jsons)
                {
                    builder.AddJsonFile(json, false, true);
                }
            }

            return(builder);
        }
예제 #2
0
        /// <summary> 使用Consul配置中心 </summary>
        /// <param name="manager"></param>
        public static ISpearConfigBuilder AddConsulConfig(this ISpearConfigBuilder builder)
        {
            //配置中心
            var provider = new ConsulConfigProvider();
            var t        = builder.Sources.FirstOrDefault(c => c is ConsulConfigProvider);

            if (t != null)
            {
                builder.Sources.Remove(t);
            }
            builder.Sources.Insert(0, provider);
            return(builder);
        }
예제 #3
0
 protected virtual void ConfigBuilder(ISpearConfigBuilder builder)
 {
 }