/// <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); }
/// <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); }
/// <summary> /// 初始化一个<see cref="EventBusBuilder"/>类型的新实例 /// </summary> public EventBusBuilder(IEventHandlerTypeFinder typeFinder, IEventBus eventBus) { _typeFinder = typeFinder; _eventBus = eventBus; }