public void AddSubscriber(IHostIoSubscriber subscriber) { foreach (WeakReference reference in this.subscribers) { if (reference.Target == subscriber) { return; } } this.subscribers.Add(new WeakReference(subscriber)); }
public void RemoveSubscriber(IHostIoSubscriber subscriber) { var matches = new List<WeakReference>(); foreach (WeakReference reference in this.subscribers) { if (reference.Target == subscriber) { matches.Add(reference); } } foreach (WeakReference reference in matches) { this.subscribers.Remove(reference); } }