Пример #1
0
        public void Subscribe <TDerivedMessage>(Consumes <TDerivedMessage> handler) where TDerivedMessage : TBaseMessage
        {
            Multiplexor <TBaseMessage> handlers;

            if (!_subscriptions.TryGetValue(typeof(TDerivedMessage), out handlers))
            {
                handlers = new Multiplexor <TBaseMessage>();
                _subscriptions.Add(typeof(TDerivedMessage), handlers);
            }
            handlers.AttachConsumer(new NarrowingConsumer <TBaseMessage, TDerivedMessage>(handler));
        }
Пример #2
0
        public static Produces <T> AcceptingMany <T>(this Produces <T> produces) where T : Message
        {
            if (produces == null)
            {
                throw new ArgumentNullException("produces");
            }
            var multi = new Multiplexor <T>();

            produces.AttachConsumer(multi);
            return(multi);
        }