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