public void AddHandler(object target, string name, BikeFunction bikeFunc, Interpreter interpreter, bool isStatic)
 {
     var invoker = new BikeCallback(target, null, bikeFunc);
     var delegateType = isStatic
         ? ((Type)target).AddHandler(name, invoker.Callback)
         : target.AddHandler(name, invoker.Callback);
     invoker.ReturnType = delegateType.GetMethod("Invoke").ReturnType;
 }
        public void AddHandler(object target, string name, BikeFunction bikeFunc, Interpreter interpreter, bool isStatic)
        {
            var invoker      = new BikeCallback(target, null, bikeFunc);
            var delegateType = isStatic
                ? ((Type)target).AddHandler(name, invoker.Callback)
                : target.AddHandler(name, invoker.Callback);

            invoker.ReturnType = delegateType.GetMethod("Invoke").ReturnType;
        }
Esempio n. 3
0
            public bool Convert(Type targetType, object owner, ref object value)
            {
                if (!(value is BikeFunction) || !typeof(Delegate).IsAssignableFrom(targetType))
                {
                    return(false);
                }

                var invoker = new BikeCallback(owner,
                                               targetType.GetMethod("Invoke").ReturnType,
                                               (BikeFunction)value);

                value = targetType.BuildDynamicHandler(invoker.Callback);
                return(true);
            }
            public bool Convert(Type targetType, object owner, ref object value)
            {
                if (!(value is BikeFunction) || !typeof(Delegate).IsAssignableFrom(targetType))
                    return false;

                var invoker = new BikeCallback(owner,
                                                targetType.GetMethod("Invoke").ReturnType,
                                                (BikeFunction) value);
                value = targetType.BuildDynamicHandler(invoker.Callback);
                return true;
            }