public void AddMissingKeys(IUpdatableSettings from)
 {
     if (from is SerializableDictionary <TKey, TValue> fromDict)
     {
         this.Union(fromDict.Where(k => !ContainsKey(k.Key))).ToDictionary(k => k.Key, v => v.Value);
     }
 }
        public static void RemoveListener(IUpdatableSettings source,
            IWeakEventListener handler)
        {
            if ( source == null )
            throw new ArgumentNullException("source");
              if ( handler == null )
            throw new ArgumentNullException("handler");

              CurrentManager.ProtectedRemoveListener(source, handler);
        }
        public static void AddListener(IUpdatableSettings source,
                                       IWeakEventListener handler)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }
            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            CurrentManager.ProtectedAddListener(source, handler);
        }