Binding.FastBindResult <T> Binding.IFastInvokable.MakeInvokeBinding <T>(CallSite <T> site, Binding.PythonInvokeBinder binder, CodeContext context, object[] args) { // TODO: We can process any signature that isn't * or ** args for the 1st argument if (binder.Signature.IsSimple) { BaseMethodBinding binding = null; var selfBinder = GetSelfBinder(binder, context); if (args.Length == 0) { binding = new MethodBinding(selfBinder); } else { binding = GetMethodBinding <T>(selfBinder, GetTypeArgs <T>(), binding); } if (binding != null) { return(new FastBindResult <T>( (T)(object)binding.GetSelfTarget(), true )); } } return(new Binding.FastBindResult <T>()); }
private static BaseMethodBinding GetMethodBinding <T>(Binding.PythonInvokeBinder binder, Type[] typeArgs, BaseMethodBinding binding) where T : class { #region Generated Python Selfless Method Caller Switch // *** BEGIN GENERATED CODE *** // generated by function: selfless_method_caller_switch from: generate_calls.py switch (typeArgs.Length) { case 1: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <>).MakeGenericType(typeArgs), binder); break; case 2: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <,>).MakeGenericType(typeArgs), binder); break; case 3: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, ,>).MakeGenericType(typeArgs), binder); break; case 4: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , ,>).MakeGenericType(typeArgs), binder); break; case 5: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , ,>).MakeGenericType(typeArgs), binder); break; case 6: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , , ,>).MakeGenericType(typeArgs), binder); break; case 7: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , , , ,>).MakeGenericType(typeArgs), binder); break; case 8: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , , , , ,>).MakeGenericType(typeArgs), binder); break; case 9: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , , , , , ,>).MakeGenericType(typeArgs), binder); break; case 10: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , , , , , , ,>).MakeGenericType(typeArgs), binder); break; case 11: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , , , , , , , ,>).MakeGenericType(typeArgs), binder); break; case 12: binding = (BaseMethodBinding)Activator.CreateInstance(typeof(MethodBinding <, , , , , , , , , , ,>).MakeGenericType(typeArgs), binder); break; } // *** END GENERATED CODE *** #endregion return(binding); }