public SynchronousBus(IWindsorContainer container) { _container = container; _handlersResolver = new MessageHandlersResolver(container: container, handlerInterfaces: new[] { typeof(IHandleInProcessMessages <>), typeof(IHandleMessages <>) }, excludedHandlerInterfaces: new[] { typeof(IHandleRemoteMessages <>) }); _messageHandlersInvoker = new MessageHandlersInvoker(container, _handlersResolver); }
public SynchronousBus(IWindsorContainer container) { _container = container; _handlersResolver = new MessageHandlersResolver(container: container, handlerInterfaces: new[] { typeof(IHandleInProcessMessages<>), typeof(IHandleMessages<>) }, excludedHandlerInterfaces: new[] { typeof(IHandleRemoteMessages<>) }); _messageHandlersInvoker = new MessageHandlersInvoker(container, _handlersResolver); }
public EventsReplayer(IWindsorContainer container) { var handlerResolver = new MessageHandlersResolver( container: container, handlerInterfaces: new[] { typeof(IHandleReplayedEvents<>) }, excludedHandlerInterfaces: new[] { typeof(IHandleRemoteMessages<>) } ); _handlersInvoker = new MessageHandlersInvoker(container, handlerResolver); }
private static void AssertThatThereIsExactlyOneRegisteredHandler(MessageHandlersResolver.MessageHandlerReference[] handlers, object message) { if (handlers.Length == 0) { throw new NoHandlerException(message.GetType()); } if (handlers.Length > 1) { //TODO: Maybe we can avoid these code. var realHandlers = handlers.Select(handler => handler.ImplementingClass) .Where(handlerType => !typeof(IMessageSpy).IsAssignableFrom(handlerType)) .ToList(); if (realHandlers.Count > 1) { throw new MultipleMessageHandlersRegisteredException(message, realHandlers); } } }
public MessageHandlersInvoker(IWindsorContainer container, MessageHandlersResolver handlersResolver) { _container = container; _handlersResolver = handlersResolver; }
public MessageHandlersInvoker(IWindsorContainer container, MessageHandlersResolver handlersResolver) { _container = container; _handlersResolver = handlersResolver; }