Example #1
0
 public static ListenerDrawer CreateListenerDrawer(object target, ListenerAttribute attr)
 {
     if (attrDrawerDic.TryGetValue(attr.GetType(), out Type drawerType))
     {
         return((ListenerDrawer)Activator.CreateInstance(drawerType, target, attr));
     }
     return(null);
 }
Example #2
0
        private Listener MetaGetListener(MethodInfo method, ListenerAttribute attribute)
        {
            var param = method.GetParameters();

            if (param.Length == 1)
            {
                var type = param[0].ParameterType;
                if(typeof(Message).IsAssignableFrom(type))
                {
                    var m = typeof(ListenerMessageDebug<>).MakeGenericType(type);

                    return (Listener)Activator.CreateInstance(m, type, method);
                    //return new ListenerMessage(type, method);
                }

                throw new Exception();
            }

            if(param.Length == 2)
            {
                if(param[0].ParameterType != typeof(IMessageSender))
                {
                    throw new Exception("Must be a message sender");
                }

                var type = param[1].ParameterType;

                if (typeof(Message).IsAssignableFrom(type))
                {
                    var m = typeof(ListenerMultiDebug<>).MakeGenericType(type);

                    return (Listener)Activator.CreateInstance(m, type, method);
                }

                throw new Exception();
            }

            throw new Exception("Can not process listener");
        }
 public OnValueChangedDrawer(object target, ListenerAttribute attr) : base(target, attr)
 {
 }
Example #4
0
 public ListenerDrawer(object target, ListenerAttribute attr) : base(attr)
 {
     Target = target;
 }