예제 #1
0
        public Delegate Evaluate(IConditionExpression conditionExpression, Type contextType)
        {
            var contextParameter = Expression.Parameter(contextType, "ctx");
            var expression       = conditionExpression.Process(contextParameter, contextType);
            var lambda           = Expression.Lambda(expression, contextParameter);
            var func             = lambda.Compile();

            return(func);
        }
예제 #2
0
        public Func <T, bool> Evaluate <T>(IConditionExpression conditionExpression) where T : class
        {
            var contextType      = typeof(T);
            var contextParameter = Expression.Parameter(contextType, "ctx");
            var expression       = conditionExpression.Process(contextParameter, contextType);
            var @delegate        = Expression.Lambda <Func <T, bool> >(expression, contextParameter);
            var func             = @delegate.Compile();

            return(func);
        }