Beispiel #1
0
 private void ProcessRemoveListenerAction(RemoveListenerAction removeListenerAction)
 {
     if (removeListenerAction != null)
     {
         IEventListener eventListener = removeListenerAction.GetEventListener();
         if (eventListener != null)
         {
             List <WeakReference <IEventListener> > weakReferences;
             foreach (EventType eventType in eventListener.GetNotifyTypes())
             {
                 if (EventTypesToListeners.TryGetValue(eventType, out weakReferences))
                 {
                     foreach (WeakReference <IEventListener> weakReference in weakReferences)
                     {
                         IEventListener _eventListener;
                         if (weakReference.TryGetTarget(out _eventListener))
                         {
                             if (_eventListener.Equals(eventListener))
                             {
                                 weakReferences.Remove(weakReference);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Beispiel #2
0
 private void ProcessAddListenerAction(AddListenerAction addListenerAction)
 {
     if (addListenerAction != null)
     {
         IEventListener eventListener = addListenerAction.GetEventListener();
         if (eventListener != null)
         {
             List <WeakReference <IEventListener> > weakReferences;
             foreach (EventType eventType in eventListener.GetNotifyTypes())
             {
                 if (!EventTypesToListeners.TryGetValue(eventType, out weakReferences))
                 {
                     weakReferences = new List <WeakReference <IEventListener> >();
                 }
                 weakReferences.Add(new WeakReference <IEventListener>(eventListener));
                 EventTypesToListeners.Add(eventType, weakReferences);
             }
         }
     }
 }