/// <summary> /// 设置订阅信息 /// </summary> private static void SetSubscribe(this IServiceCollection services, params Assembly[] assemblies) { if (assemblies != null && assemblies.Count() > 0) { foreach (var item in assemblies) { //获取需要订阅的信息 var list = item.GetSubscribe(); if (list != null && list.Count() > 0) { foreach (var subscribeType in list) { //将订阅的信息 存储到工厂 SubscribeTypeFactory.Set(subscribeType); //注入服务 services.TryAddSingleton(subscribeType.ServiceType); } } } } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { stoppingToken.Register(() => { logger.LogInformation("stop"); }); //获取所有需要订阅的名称 var subscribeNames = SubscribeTypeFactory.GetAllSubscribeName(); if (subscribeNames != null && subscribeNames.Count() > 0) { var subscribeEvent = serviceProvider.GetService <ISubscribeEvent>(); if (subscribeEvent != null) { //处理订阅信息 await subscribeEvent.SubscribeAsync(subscribeNames); } else { logger.LogWarning("当前未实现订阅服务"); } } }