public void RegisterForEvent(object listener, string eventName)
        {
            if ((listener == null) || (string.IsNullOrEmpty(eventName)))
            {
                return;                                                          // Invalid arguments
            }
            if (IsRegisteredForEvent(listener, eventName))
            {
                return;                                            // already registered
            }
            ObjectInspectionHelper helper = ObjectInspector.GetMethodInfoForSubsribedEventEvent(listener, eventName);

            if (helper != null)
            {
                delegateDefinitions.Add(CreateDelegateDefinition(listener, helper));
            }
        }
        public void Register(object listener)
        {
            if (listener == null)
            {
                return;
            }

            Dictionary <string, ObjectInspectionHelper> methodInfos = ObjectInspector.GetMethodInfosWithValidSubscribeAttribute(listener);

            foreach (KeyValuePair <string, ObjectInspectionHelper> item in methodInfos)
            {
                if (IsRegisteredForEvent(listener, item.Key))
                {
                    continue;                                           // Already registered
                }
                delegateDefinitions.Add(CreateDelegateDefinition(listener, item.Value));
            }
        }