System.Linq.Expressions.Expression.Invoke C# (CSharp) Method

Invoke() static private method

Creates an InvocationExpression that applies a delegate or lambda expression with no arguments.
/// is null. /// .Type does not represent a delegate type or an . /// The number of arguments does not contain match the number of parameters for the delegate represented by .
static private Invoke ( Expression expression ) : InvocationExpression
expression Expression /// An that represents the delegate /// or lambda expression to be applied. ///
return InvocationExpression
        internal static InvocationExpression Invoke(Expression expression)
        {
            // COMPAT: This method is marked as non-public to avoid a gap between a 0-ary and 2-ary overload (see remark for the unary case below).

            RequiresCanRead(expression, nameof(expression));

            MethodInfo method = GetInvokeMethod(expression);

            ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke);

            ValidateArgumentCount(method, ExpressionType.Invoke, 0, pis);

            return new InvocationExpression0(expression, method.ReturnType);
        }

Same methods

Expression::Invoke ( Expression expression, Expression arg0 ) : InvocationExpression
Expression::Invoke ( Expression expression, Expression arg0, Expression arg1 ) : InvocationExpression
Expression::Invoke ( Expression expression, Expression arg0, Expression arg1, Expression arg2 ) : InvocationExpression
Expression::Invoke ( Expression expression, Expression arg0, Expression arg1, Expression arg2, Expression arg3 ) : InvocationExpression
Expression::Invoke ( Expression expression, Expression arg0, Expression arg1, Expression arg2, Expression arg3, Expression arg4 ) : InvocationExpression
Expression::Invoke ( Expression expression, IEnumerable arguments ) : InvocationExpression

Usage Example

Ejemplo n.º 1
0
        /// <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));
        }
All Usage Examples Of System.Linq.Expressions.Expression::Invoke
Expression