internal bool IsRegistered(object instance) { if (Publish == null) { return(false); } // return((from item in Publish.GetInvocationList() where item.Target == instance select item).Count() > 0); }
internal bool IsRegistered(Type type) { if (Publish == null) { return(false); } // return((from item in Publish.GetInvocationList() where item.Target == null & item.Method.DeclaringType == type select item).Count() > 0); }
public void Broadcast(TEvent Event, TSubject Receiver, TObject Object) { int ReceiverHash = Receiver.GetHashCode(); foreach (StreamEvent p in Publish.GetInvocationList()) { int TargetHash = Target(p); if (!ObjectRegistry.ContainsKey(TargetHash)) { continue; } foreach (var Sub in ObjectRegistry[TargetHash].Subscriptions) { if (Validate(Sub, ReceiverHash, TargetHash, Receiver)) { p?.Invoke(Event, Receiver, Object); } } } }