public void Subscribe <TMessage>(IVphtHandleMessage <TMessage> instance, Func <TMessage, bool> selector) { lock (handlers) { if (handlers.Any(x => x.Matches(instance))) { return; } handlers.Add(new Handler(instance)); } }
public virtual void Unsubscribe <TMessage>(IVphtHandleMessage <TMessage> instance) { lock (handlers) { var found = handlers.FirstOrDefault(x => x.Matches(instance)); if (found != null) { handlers.Remove(found); } } }
public void Subscribe <TMessage>(IVphtHandleMessage <TMessage> handler) { this.Subscribe(handler, m => true); }