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); }
/// <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); }