コード例 #1
0
        /// <summary>
        /// 应用配置中心中存储的配置。
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="configBasePath">配置中心配置文件的基目录</param>
        /// <param name="serverConfigFile">配置中心服务器配置文件。</param>
        /// <returns></returns>
        public static IConfigurationBuilder AddConfigurationCenter(this IConfigurationBuilder builder, string configBasePath, string serverConfigFile = "appsettings.json")
        {
            //如果使用ConfigurationBuilder则无法使用链式调用
            Guard.ArgumentNullOrWhiteSpaceString(serverConfigFile, nameof(serverConfigFile));

            var tempBuilder = new ConfigurationBuilder();

            tempBuilder
            .SetBasePath(configBasePath)
            .AddEnvironmentVariables()
            .AddJsonFile(serverConfigFile, false);

            IConfiguration configuration = tempBuilder.Build().GetSection("Schubert:Configuration") as IConfiguration ?? new ConfigurationBuilder().Build();

            if (configuration != null)
            {
                ConfigurationCenterOptions ccOptions = new ConfigurationCenterOptions();
                var serverOptionsSetup = new ConfigureFromConfigurationOptions <ConfigurationCenterOptions>(configuration);
                serverOptionsSetup.Configure(ccOptions);

                builder.Add(new ZookeeperConfigurationSource(ccOptions));
            }
            else
            {
                throw new ConfigurationException($"配置中心服务器配置文件格式不正确,缺少必要的配置节 Schubert:Configuration。");
            }
            return(builder);
        }
コード例 #2
0
        /// <summary>
        /// 应用配置中心中存储的配置。
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="setup">配置中心配置。</param>
        /// <returns></returns>
        public static IConfigurationBuilder AddConfigurationCenter(this IConfigurationBuilder builder, Action <ConfigurationCenterOptions> setup)
        {
            Guard.ArgumentNotNull(setup, nameof(setup));

            ConfigurationCenterOptions ccOptions = new ConfigurationCenterOptions();

            setup(ccOptions);
            builder.Add(new ZookeeperConfigurationSource(ccOptions));
            return(builder);
        }