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); }
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); }