public void AddChangeListener(string key, ISettingsChangeListener listener) { if (key == null) { key = ""; } WeakReferenceList <ISettingsChangeListener> existing = null; if (!ChangeListeners.TryGetValue(key, out existing)) { ChangeListeners[key] = existing = new WeakReferenceList <ISettingsChangeListener>(); } existing.Add(listener); }
public void Unsubscribe(ISettingsChangeListener listener) { _listeners.RemoveAll(x => ReferenceEquals(listener, x.Target)); }
public void Subscribe(ISettingsChangeListener listener) { _listeners.Add(new WeakReference(listener)); }