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 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; }