public static IServiceCollection AddDynamicMiddleware <TMiddleService, TMiddleImplementation>(this IServiceCollection services, Action <DynamicMiddlewareOptions> action)
            where TMiddleService : class
            where TMiddleImplementation : class, TMiddleService
        {
            var options = new DynamicMiddlewareOptions();

            action(options);

            //注册服务发现
            services.AddServiceDiscovery(options.serviceDiscoveryOptions);

            //注册负载均衡
            services.AddLoadBalance(options.loadBalanceOptions);

            //注册中台组件
            services.AddMiddleware(options.middelwareOptions);

            //注册动态中台url服务
            services.AddSingleton <IDynamicMiddleUrl, DefaultDynamicMiddleUrl>();

            //注册动态中台
            services.AddSingleton <TMiddleService, TMiddleImplementation>();

            return(services);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 添加动态中台
        /// </summary>
        /// <typeparam name="IMiddleService"></typeparam>
        /// <param name="services"></param>
        /// <returns></returns>
        public static IServiceCollection AddDynamicMiddleware <TMiddleService, TMiddleImplementation>(this IServiceCollection services, Action <DynamicMiddlewareOptions> options)
            where TMiddleService : class
            where TMiddleImplementation : class, TMiddleService
        {
            DynamicMiddlewareOptions dynamicMiddlewareOptions = new DynamicMiddlewareOptions();

            options(dynamicMiddlewareOptions);

            // 1、注册服务发现
            services.AddServiceDiscovery(dynamicMiddlewareOptions.serviceDiscoveryOptions);

            // 2、注册负载均衡
            services.AddLoadBalance(dynamicMiddlewareOptions.loadBalanceOptions);

            // 3、添加中台服务
            services.AddMiddleware(dynamicMiddlewareOptions.middlewareOptions);

            // 4、注册动态中台Url服务
            services.AddSingleton <IDynamicMiddleUrl, DefaultDynamicMiddleUrl>();

            // 5、注册动态服务
            services.AddSingleton <TMiddleService, TMiddleImplementation>();
            return(services);
        }