Beispiel #1
0
 /// <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);
                 }
             }
         }
     }
 }
Beispiel #2
0
        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("当前未实现订阅服务");
                }
            }
        }