Ejemplo n.º 1
0
        public NsqBus(
            Dictionary <string, List <MessageHandlerMetadata> > topicChannelHandlers,
            IObjectBuilder dependencyInjectionContainer,
            IMessageTypeToTopicProvider messageTypeToTopicProvider,
            IMessageSerializer sendMessageSerializer,
            ILogger nsqLogger,
            IMessageMutator messageMutator,
            IMessageTopicRouter messageTopicRouter,
            INsqdPublisher nsqdPublisher
            )
        {
            if (topicChannelHandlers == null)
            {
                throw new ArgumentNullException("topicChannelHandlers");
            }
            if (dependencyInjectionContainer == null)
            {
                throw new ArgumentNullException("dependencyInjectionContainer");
            }
            if (messageTypeToTopicProvider == null)
            {
                throw new ArgumentNullException("messageTypeToTopicProvider");
            }
            if (sendMessageSerializer == null)
            {
                throw new ArgumentNullException("sendMessageSerializer");
            }
            if (nsqdPublisher == null)
            {
                throw new ArgumentNullException("nsqdPublisher");
            }
            if (nsqLogger == null)
            {
                throw new ArgumentNullException("nsqLogger");
            }

            _topicChannelHandlers         = topicChannelHandlers;
            _dependencyInjectionContainer = dependencyInjectionContainer;
            _messageTypeToTopicProvider   = messageTypeToTopicProvider;
            _sendMessageSerializer        = sendMessageSerializer;
            _nsqLogger          = nsqLogger;
            _messageMutator     = messageMutator;
            _messageTopicRouter = messageTopicRouter;
            _nsqdPublisher      = nsqdPublisher;

            _dependencyInjectionContainer.Inject((IBus)this);
        }