public void Unregister(IReceiveRootedWeakEvent objectToCall) { for (int i = classesToCall.Count - 1; i >= 0; i--) { if (classesToCall[i].Target == objectToCall) { classesToCall.RemoveAt(i); } } }
public void CallEvents(Object sender, EventArgs e) { for (int i = classesToCall.Count - 1; i >= 0; i--) { IReceiveRootedWeakEvent reciever = classesToCall[i].Target as IReceiveRootedWeakEvent; if (reciever == null) { classesToCall.RemoveAt(i); eventTypes.RemoveAt(i); } else { reciever.RootedEvent(eventTypes[i], e); } } }
public void Register(IReceiveRootedWeakEvent objectToCall, string eventType) { classesToCall.Add(new WeakReference(objectToCall)); eventTypes.Add(eventType); }