public int GetEventObservationCount(Type eventType)
 {
     lock (_gate)
     {
         EventObservations eventObservations = GetEventObservations(eventType);
         return(eventObservations.NumberOfObservers);
     }
 }
 public void DecrementRegistration <TEventType>()
 {
     lock (_gate)
     {
         EventObservations eventObservations = GetEventObservations(typeof(TEventType));
         eventObservations.NumberOfObservers--;
     }
 }
        private EventObservations GetEventObservations(Type eventType)
        {
            EventObservations eventObservations;

            if (!_eventObservations.TryGetValue(eventType, out eventObservations))
            {
                eventObservations = new EventObservations(eventType);
                _eventObservations.Add(eventType, eventObservations);
            }
            return(eventObservations);
        }