public static MethodCallExpression Call(MethodInfo method, Expression arg0, Expression arg1, Expression arg2, Expression arg3, Expression arg4)
{
ContractUtils.RequiresNotNull(method, nameof(method));
ContractUtils.RequiresNotNull(arg0, nameof(arg0));
ContractUtils.RequiresNotNull(arg1, nameof(arg1));
ContractUtils.RequiresNotNull(arg2, nameof(arg2));
ContractUtils.RequiresNotNull(arg3, nameof(arg3));
ContractUtils.RequiresNotNull(arg4, nameof(arg4));
ParameterInfo[] pis = ValidateMethodAndGetParameters(null, method);
ValidateArgumentCount(method, ExpressionType.Call, 5, pis);
arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0));
arg1 = ValidateOneArgument(method, ExpressionType.Call, arg1, pis[1], nameof(method), nameof(arg1));
arg2 = ValidateOneArgument(method, ExpressionType.Call, arg2, pis[2], nameof(method), nameof(arg2));
arg3 = ValidateOneArgument(method, ExpressionType.Call, arg3, pis[3], nameof(method), nameof(arg3));
arg4 = ValidateOneArgument(method, ExpressionType.Call, arg4, pis[4], nameof(method), nameof(arg4));
return new MethodCallExpression5(method, arg0, arg1, arg2, arg3, arg4);
}