public static void AddShenyuRegister()

in client/Apache.ShenYu.AspNetCore/Utils/ShenyuCollectionExtensions.cs [37:85]


        public static void AddShenyuRegister(this IServiceCollection services, IConfiguration configuration)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            var shenyuOptions = new ShenyuOptions();
            configuration.GetSection(ShenyuOptions.Shenyu).Bind(shenyuOptions);

            services.Configure<ShenyuOptions>(configuration.GetSection(ShenyuOptions.Shenyu));
            services.AddHostedService<ShenyuStartupService>();

            if (shenyuOptions.Register.RegisterType.Equals(""))
            {
                services.AddSingleton<IShenyuRegister, ShenyuHttpRegister>();
            }

            switch (shenyuOptions.Register.RegisterType)
            {
                case Constants.RegisterType.Http:
                {
                    services.AddSingleton<IShenyuRegister, ShenyuHttpRegister>();
                    break;
                }
                case Constants.RegisterType.Zookeeper:
                {
                    services.AddSingleton<IShenyuRegister, ShenyuZookeeperRegister>();
                    break;
                }
                case Constants.RegisterType.Consul:
                {
                    services.AddSingleton<IShenyuRegister, ShenyuConsulRegister>();
                    break;
                }
                case Constants.RegisterType.Nacos:
                {
                    services.AddSingleton<IShenyuRegister, ShenyuNacosRegister>();
                    break;
                }
                case Constants.RegisterType.Etcd:
                    {
                        services.AddSingleton<IShenyuRegister, ShenyuEtcdRegister>();
                        break;
                    }
                default:
                    throw new Exception($"not supported type {shenyuOptions.Register.RegisterType}");
            }
        }