Beispiel #1
0
        private Tuple <MemberExpression, Expression> CreatePair(ReadOnlyCollection <Expression> arguments)
        {
            var p = ((ConstantExpression)arguments[1]).Value;
            var s = ((ConstantExpression)arguments[2]).Value;

            if (p is string)
            {
                p = ExpressionHelper.PathToExpression(typeof(T), p.ToString());
            }

            var pBody = (p as LambdaExpression)?.Body ?? (Expression)p;

            if (!ExpressionHelper.CheckMemberAccess(typeof(T), pBody))
            {
                return(null);
            }

            return(Tuple.Create((MemberExpression)pBody, ((LambdaExpression)s).Body));
        }