public static ILGenerator PushArgumentsOntoStack(this ILGenerator generator, ParameterInfo[] parameters) { for (int i = 0; i < parameters.Length; i++) { generator.AndPushArgument1OntoStack() .AndPushInt32AsInt32OntoStack(i) .AndPushElementFromArrayAtIndexOnStackOntoStack(); generator.AndUnboxValueTypeArgument(parameters[i].ParameterType); } return(generator); }