Ejemplo n.º 1
0
        /// <summary>
        /// 获取方法调用表达式的成员名称
        /// </summary>
        /// <param name="expression">表达式</param>
        private static MemberExpression GetMethodCallExpressionName(Expression expression)
        {
            var methodCallExpression = (MethodCallExpression)expression;
            var left = (MemberExpression)methodCallExpression.Object;

            if (Reflections.IsGenericCollection(left?.Type))
            {
                var argumentExpression = methodCallExpression.Arguments.FirstOrDefault();
                if (argumentExpression != null && argumentExpression.NodeType == ExpressionType.MemberAccess)
                {
                    return((MemberExpression)argumentExpression);
                }
            }
            return(left);
        }