Esempio n. 1
0
        public static IApolloConfigurationBuilder AddNamespace(this IApolloConfigurationBuilder builder, string @namespance, IAbpApolloConfiguration configuration)
        {
            var apolloBuilder = builder.AddNamespace(@namespance, @namespance);

            apolloBuilder.ConfigRepositoryFactory
            .GetConfigRepository(@namespance)
            .AddChangeListener(new RepositoryChangeListener(configuration));
            return(apolloBuilder);
        }
Esempio n. 2
0
        private static IConfigurationBuilder BindNameSpace(this IApolloConfigurationBuilder builder, string[] namespaces)
        {
            if (namespaces.IsNull())
            {
                return(builder);
            }

            foreach (var @namespace in namespaces)
            {
                builder.AddNamespace(@namespace);
            }

            return(builder);
        }
Esempio n. 3
0
        /// <summary>
        /// 添加其他namespace。如果sectionKey为null则添加到root中,可以直接读取,否则使用Configuration.GetSection(sectionKey)读取
        /// </summary>
        /// <param name="builder">The builder.</param>
        /// <param name="namespace">The namespace.</param>
        /// <param name="sectionKey">The section key.</param>
        /// <param name="format">The format.</param>
        /// <returns>IApolloConfigurationBuilder.</returns>
        /// <exception cref="ArgumentNullException">namespace</exception>
        /// <exception cref="ArgumentOutOfRangeException">format - 最小值{ConfigFileFormat.Properties},最大值{ConfigFileFormat.Txt}</exception>
        public static IApolloConfigurationBuilder AddNamespaceApollo(this IApolloConfigurationBuilder builder,
                                                                     string @namespace, string?sectionKey, ConfigFileFormat format = ConfigFileFormat.Json)
        {
            if (string.IsNullOrWhiteSpace(@namespace))
            {
                throw new ArgumentNullException(nameof(@namespace));
            }
            if (format < ConfigFileFormat.Properties || format > ConfigFileFormat.Txt)
            {
                throw new ArgumentOutOfRangeException(nameof(format), format,
                                                      $"最小值{ConfigFileFormat.Properties},最大值{ConfigFileFormat.Txt}");
            }

            if (format != ConfigFileFormat.Properties)
            {
                @namespace += "." + format.GetString();
            }

            var configRepository = builder.ConfigRepositoryFactory.GetConfigRepository(@namespace);
            var previous         = builder.Sources.FirstOrDefault(source =>
                                                                  source is KissUApolloConfigurationProvider apollo &&
                                                                  apollo.SectionKey == sectionKey &&
                                                                  apollo.ConfigRepository == configRepository);

            if (previous != null)
            {
                builder.Sources.Remove(previous);
                builder.Sources.Add(previous);
            }
            else
            {
                builder.Add(new KissUApolloConfigurationProvider(sectionKey, configRepository));
#pragma warning disable 618
                ApolloConfigurationManager.Manager.Registry.Register(@namespace,
                                                                     new DefaultConfigFactory(builder.ConfigRepositoryFactory));
#pragma warning restore 618
            }

            return(builder);
        }
 /// <summary>添加其他namespace</summary>
 public static IApolloConfigurationBuilder AddNamespaceSurgingApollo(this IApolloConfigurationBuilder builder, string @namespace, ConfigFileFormat format = ConfigFileFormat.Json) =>
 builder.AddNamespaceSurgingApollo(@namespace, null, format);
Esempio n. 5
0
 /// <summary>
 /// 添加其他namespace
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="namespace">The namespace.</param>
 /// <param name="format">The format.</param>
 /// <returns>IApolloConfigurationBuilder.</returns>
 public static IApolloConfigurationBuilder AddNamespaceApollo(this IApolloConfigurationBuilder builder,
                                                              string @namespace, ConfigFileFormat format = ConfigFileFormat.Json)
 {
     return(builder.AddNamespaceApollo(@namespace, null, format));
 }
Esempio n. 6
0
 /// <summary>添加其他namespace</summary>
 public static IApolloConfigurationBuilder AddNamespace(this IApolloConfigurationBuilder builder, string @namespace, ConfigFileFormat format = ConfigFileFormat.Properties) =>
 builder.AddNamespace(@namespace, null, format);
Esempio n. 7
0
 /// <summary>添加默认namespace: application,等价于AddNamespace(ConfigConsts.NamespaceApplication)</summary>
 public static IApolloConfigurationBuilder AddDefault(this IApolloConfigurationBuilder builder, ConfigFileFormat format = ConfigFileFormat.Properties) =>
 builder.AddNamespace(ConfigConsts.NamespaceApplication, null, format);
        /// <summary>添加其他namespace。如果sectionKey为null则添加到root中,可以直接读取,否则使用Configuration.GetSection(sectionKey)读取</summary>
        public static IApolloConfigurationBuilder AddNamespace(this IApolloConfigurationBuilder builder, string @namespace, string sectionKey)
        {
            builder.Add(new ApolloConfigurationProvider(sectionKey, builder.ConfigRepositoryFactory.GetConfigRepository(@namespace ?? throw new ArgumentNullException(nameof(@namespace)))));

            return(builder);
        }
 /// <summary>添加其他namespace</summary>
 public static IApolloConfigurationBuilder AddNamespace(this IApolloConfigurationBuilder builder, string @namespace) =>
 builder.AddNamespace(@namespace, null);
 /// <summary>添加默认namespace: application</summary>
 public static IApolloConfigurationBuilder AddDefault(this IApolloConfigurationBuilder builder) =>
 builder.AddNamespace(ConfigConsts.NamespaceApplication, null);