Exemplo n.º 1
0
            public Handler(RoqueEventBroadcaster broadcaster, Type sourceType, object source, string eventName)
            {
                Broadcaster = broadcaster;
                Source      = source;
                SourceType  = sourceType;
                EventInfo   = SourceType.GetEvent(eventName);
                if (EventInfo == null)
                {
                    if (sourceType.IsInterface)
                    {
                        // search event in parent interfaces
                        foreach (var parentInterface in sourceType.GetInterfaces())
                        {
                            EventInfo = parentInterface.GetEvent(eventName);
                            if (EventInfo != null)
                            {
                                break;
                            }
                        }
                    }
                    if (EventInfo == null)
                    {
                        throw new Exception(string.Format("Event not found. Type: {0}, EventName: {1}", sourceType.FullName, eventName));
                    }
                }
                var handlerDelegate = Delegate.CreateDelegate(EventInfo.EventHandlerType, this, _OnEventType, true);

                EventInfo.AddEventHandler(source, handlerDelegate);
            }
Exemplo n.º 2
0
            public Handler(RoqueEventBroadcaster broadcaster, Type sourceType, object source, string eventName)
            {
                Broadcaster = broadcaster;
                Source      = source;
                SourceType  = sourceType;
                EventInfo   = SourceType.GetEvent(eventName);

                var handlerDelegate = Delegate.CreateDelegate(EventInfo.EventHandlerType, this, _OnEventType, true);

                EventInfo.AddEventHandler(source, handlerDelegate);
            }