static private Invoke ( |
||
expression |
/// An |
|
arg0 |
/// The |
|
arg1 |
/// The |
|
return |
internal static InvocationExpression Invoke(Expression expression, Expression arg0, Expression arg1)
{
// NB: This method is marked as non-public to avoid public API additions at this point.
RequiresCanRead(expression, nameof(expression));
MethodInfo method = GetInvokeMethod(expression);
ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke);
ValidateArgumentCount(method, ExpressionType.Invoke, 2, pis);
arg0 = ValidateOneArgument(method, ExpressionType.Invoke, arg0, pis[0], nameof(expression), nameof(arg0));
arg1 = ValidateOneArgument(method, ExpressionType.Invoke, arg1, pis[1], nameof(expression), nameof(arg1));
return new InvocationExpression2(expression, method.ReturnType, arg0, arg1);
}
Expression::Invoke ( |
|
Expression::Invoke ( |
|
Expression::Invoke ( |
|
Expression::Invoke ( |
|
Expression::Invoke ( |
|
Expression::Invoke ( |
/// <summary> /// Creates an expression that defines a logical AND function /// </summary> /// <typeparam name="T"></typeparam> /// <param name="left"></param> /// <param name="right"></param> /// <returns></returns> public static Expression <Func <T, bool> > And <T>(this Expression <Func <T, bool> > left, Expression <Func <T, bool> > right) { var invokedExpr = XPR.Invoke(right, left.Parameters.Cast <XPR>()); return(XPR.Lambda <Func <T, bool> > (XPR.AndAlso(left.Body, invokedExpr), left.Parameters)); }