Beispiel #1
0
 private static void DispatchEventToHandlerByPriority(Event @event, EventHandlerPriority priority)
 {
     if (eventHandlers[(int)priority].ContainsKey(@event.GetType()))
     {
         eventHandlers[(int)priority][@event.GetType()]?.Invoke(@event);
     }
 }
Beispiel #2
0
 public static void AddEventHandler(Type eventType, EventDelegate handler, EventHandlerPriority priority = EventHandlerPriority.Default)
 {
     if (!eventType.IsSubclassOf(typeof(Event)))
     {
         throw new InvalidEventTypeException(eventType);
     }
     if (priority == EventHandlerPriority.Count)
     {
         throw new InvalidPriorityExeption(priority);
     }
     eventHandlersToAdd[(int)priority].Add(new KeyValuePair <Type, EventDelegate>(eventType, handler));
 }
Beispiel #3
0
 public InvalidPriorityExeption(EventHandlerPriority priority)
 {
     this.priority = priority;
 }