private static void addEventHandlerToManager(IServiceResolver resolver, IEnumerable<Type> types) { IEventHandlerManager Manager = resolver.GetService(typeof(IEventHandlerManager)) as IEventHandlerManager; foreach (var type in types) { var handler = (resolver.GetService(type)); Manager.AddHandler(type.GetInterfaces().Where(a => a.GetGenericArguments().Count() > 0).FirstOrDefault().GetGenericArguments().FirstOrDefault(), handler); } }
public RabbitMqMessageListener( RabbitMqConfiguration rabbitMqConfiguration, IEventHandlerManager eventHandlerManager, ILogger <RabbitMqMessageListener> logger) { _rabbitMqConfiguration = rabbitMqConfiguration; _eventHandlerManager = eventHandlerManager; _logger = logger; InitializeConnection(); }
public EventBus(IEventHandlerManager eventHandlerManager, IServiceProvider serviceProvider) { var hostName = Environment.GetEnvironmentVariable("RABBITMQ_SERVICE_HOST") ?? "localhost"; _connectionFactory = new ConnectionFactory { HostName = hostName }; _connection = _connectionFactory.CreateConnection(); _channel = CreateChannel(); _eventHandlerManager = eventHandlerManager; _serviceProvider = serviceProvider; }
public RabbitMQEventBus( IRabbitMQPersistentConnection persistentConnection, ILogger <RabbitMQEventBus> logger, IEventHandlerManager manager, IServiceProvider service, IOptions <RabbitMQEventBusOptions> options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _retryCount = options.Value.PublishRetryCount; _manager = manager ?? throw new ArgumentNullException(nameof(manager)); this.service = service ?? throw new ArgumentNullException(nameof(service)); _channel = CreateConsumer(); }
/// <summary> /// Initialize a new <see cref="RabbitMQEventBus"/> instance. /// </summary> /// <param name="persistentConnection">A Persistent Rabbit MQ Connection</param> /// <param name="logger"></param> /// <param name="manager">A reaolationship Scheduler that manage event and handler</param> /// <param name="service">A scope service container.</param> /// <param name="options">configuration options</param> public RabbitMQEventBus( IRabbitMQPersistentConnection persistentConnection, ILogger <RabbitMQEventBus> logger, IEventHandlerManager manager, IServiceScope service, IOptions <RabbitMQEventBusOptions> options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _retryCount = options.Value.PublishRetryCount; _manager = manager ?? throw new ArgumentNullException(nameof(manager)); this.service = service == null ? throw new ArgumentNullException(nameof(service)) :service.ServiceProvider ?? throw new InvalidOperationException("scope service container must been non-null value"); _channel = CreateConsumer(); }
/// <summary> /// 初始化一个<see cref="EventBus"/>类型的实例 /// </summary> /// <param name="manager">事件处理器服务</param> /// <param name="messageEventBus">消息事件总线</param> public EventBus(IEventHandlerManager manager, IMessageEventBus messageEventBus = null) { Manager = manager; MessageEventBus = messageEventBus; }
/// <summary> /// 初始化事件总线 /// </summary> /// <param name="manager">事件处理器服务</param> public EventBus(IEventHandlerManager manager) { Manager = manager ?? throw new ArgumentNullException(nameof(manager)); }
public EventBus(IEventHandlerManager eventHandler, IServiceProvider serviceProvider) { _IEventHandlerManager = eventHandler; _IServiceProvider = serviceProvider; }