static private Invoke ( |
||
expression |
/// An |
|
arg0 |
/// The |
|
return |
internal static InvocationExpression Invoke(Expression expression, Expression arg0)
{
// COMPAT: This method is marked as non-public to ensure compile-time compatibility for Expression.Invoke(e, null).
RequiresCanRead(expression, nameof(expression));
MethodInfo method = GetInvokeMethod(expression);
ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke);
ValidateArgumentCount(method, ExpressionType.Invoke, 1, pis);
arg0 = ValidateOneArgument(method, ExpressionType.Invoke, arg0, pis[0], nameof(expression), nameof(arg0));
return new InvocationExpression1(expression, method.ReturnType, arg0);
}
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)); }