Пример #1
0
        protected virtual Expression CreateMemberExpression()
        {
            Type memberType = FilterDescriptor.MemberType;
            MemberAccessExpressionBuilderBase expressionBuilderBase =
                ExpressionBuilderFactory.MemberAccess(ParameterExpression.Type, memberType, FilterDescriptor.Member);

            expressionBuilderBase.Options.CopyFrom(Options);
            expressionBuilderBase.ParameterExpression = ParameterExpression;
            Expression expression = expressionBuilderBase.CreateMemberAccessExpression();

            if (memberType != null &&
                TypeExtensions.GetNonNullableType(expression.Type) != TypeExtensions.GetNonNullableType(memberType))
            {
                expression = Expression.Convert(expression, memberType);
            }
            return(expression);
        }
Пример #2
0
        public static LambdaExpression Lambda <T>(string memberName, bool checkForNull)
        {
            MemberAccessExpressionBuilderBase expressionBuilder = ExpressionBuilderFactory.MemberAccess(typeof(T), memberName, checkForNull);

            return(expressionBuilder.CreateLambdaExpression());
        }