Beispiel #1
0
        /// <summary>
        /// 增加Handler
        /// </summary>
        /// <param name="eventType"></param>
        /// <param name="eventHandlerType"></param>
        /// <param name="order"></param>
        /// <returns></returns>
        public bool AddSubscription(Type eventType, Type eventHandlerType, int order)
        {
            var eventKey   = GetEventKey(eventType);
            var addHandler = new EventHandlerType()
            {
                Order = order, EventHandlerTypes = eventHandlerType
            };

            if (_eventHandlers.ContainsKey(eventKey))
            {
                return(_eventHandlers[eventKey].Add(addHandler));
            }
            else
            {
                return(_eventHandlers.TryAdd(eventKey, new HashSet <EventHandlerType>()
                {
                    addHandler
                }));
            }
        }
Beispiel #2
0
        /// <summary>
        /// 增加Handler
        /// </summary>
        /// <typeparam name="TEvent"></typeparam>
        /// <typeparam name="TEventHandler"></typeparam>
        ///<param name="order">傳入排序</param>
        /// <returns></returns>
        public bool AddSubscription <TEvent, TEventHandler>(int order)
            where TEvent : IEventBase
            where TEventHandler : IEventHandler <TEvent>
        {
            var eventKey   = GetEventKey <TEvent>();
            var addHandler = new EventHandlerType()
            {
                Order = order, EventHandlerTypes = typeof(TEventHandler)
            };

            if (_eventHandlers.ContainsKey(eventKey))
            {
                return(_eventHandlers[eventKey].Add(addHandler));
            }
            else
            {
                return(_eventHandlers.TryAdd(eventKey, new HashSet <EventHandlerType>()
                {
                    addHandler
                }));
            }
        }