Пример #1
0
        /// <summary>
        /// 将模块服务添加到依赖注入服务容器中
        /// </summary>
        /// <param name="services">依赖注入服务容器</param>
        /// <returns></returns>
        public override IServiceCollection AddServices(IServiceCollection services)
        {
            IEventHandlerTypeFinder handlerTypeFinder =
                services.GetOrAddTypeFinder <IEventHandlerTypeFinder>(assemblyFinder => new EventHandlerTypeFinder(assemblyFinder));

            //向服务窗口注册所有事件处理器类型
            Type[] eventHandlerTypes = handlerTypeFinder.FindAll();
            foreach (Type handlerType in eventHandlerTypes)
            {
                services.TryAddTransient(handlerType);
            }

            return(services);
        }
Пример #2
0
        /// <summary>
        /// 将模块服务添加到依赖注入服务容器中
        /// </summary>
        /// <param name="services">依赖注入服务容器</param>
        /// <returns></returns>
        public override IServiceCollection AddServices(IServiceCollection services)
        {
            services.TryAddSingleton <IEventBusBuilder, EventBusBuilder>();
            services.TryAddSingleton <IEventStore, InMemoryEventStore>();
            services.TryAddSingleton <IEventBus, PassThroughEventBus>();

            IEventHandlerTypeFinder handlerTypeFinder =
                services.GetOrAddTypeFinder <IEventHandlerTypeFinder>(assemblyFinder => new EventHandlerTypeFinder(assemblyFinder));

            //向服务容器注册所有事件处理器类型
            //Type[] eventHandlerTypes = handlerTypeFinder.FindAll();
            //foreach (Type handlerType in eventHandlerTypes)
            //{
            //    services.TryAddTransient(handlerType);
            //}

            return(services);
        }
Пример #3
0
 /// <summary>
 /// 初始化一个<see cref="EventBusBuilder"/>类型的新实例
 /// </summary>
 public EventBusBuilder(IEventHandlerTypeFinder typeFinder, IEventBus eventBus)
 {
     _typeFinder = typeFinder;
     _eventBus   = eventBus;
 }