static Dispatcher GetDispatcherFor(IVisitableObject message) { Type type = message.GetType(); if (!dispatchers.ContainsKey(type)) { Type closedType = typeof(Dispatcher <>).MakeGenericType(message.GetType()); object dispatcher = Activator.CreateInstance(closedType); dispatchers[type] = (Dispatcher)dispatcher; } return(dispatchers[type]); }
public abstract void Dispatch(IVisitableObject message, IEnumerable <object> subscribers);