Esempio n. 1
0
        /// <summary>
        /// Builds the expression.
        /// </summary>
        /// <param name="param">The rule.</param>
        /// <param name="typeParameterExpressions">The type parameter expressions.</param>
        /// <param name="ruleInputExp">The rule input exp.</param>
        /// <returns></returns>
        /// <exception cref="InvalidOperationException"></exception>
        private Expression BuildExpression(LocalParam param, IEnumerable <ParameterExpression> typeParameterExpressions, ParameterExpression ruleInputExp)
        {
            var ruleExpressionBuilder = _expressionBuilderFactory.RuleGetExpressionBuilder(RuleExpressionType.LambdaExpression);

            var expression = ruleExpressionBuilder.BuildExpressionForRuleParam(param, typeParameterExpressions, ruleInputExp);

            return(expression);
        }
Esempio n. 2
0
        /// <summary>Builds the expression for rule parameter.</summary>
        /// <param name="param">The parameter.</param>
        /// <param name="typeParamExpressions">The type parameter expressions.</param>
        /// <param name="ruleInputExp">The rule input exp.</param>
        /// <returns>Expression.</returns>
        internal override Expression BuildExpressionForRuleParam(LocalParam param, IEnumerable <ParameterExpression> typeParamExpressions, ParameterExpression ruleInputExp)
        {
            var config = new ParsingConfig {
                CustomTypeProvider = new CustomTypeProvider(_reSettings.CustomTypes)
            };
            var e = DynamicExpressionParser.ParseLambda(config, typeParamExpressions.ToArray(), null, param.Expression);

            return(e.Body);
        }
Esempio n. 3
0
 /// <summary>
 /// Gets the expression for rule.
 /// </summary>
 /// <param name="param">The rule.</param>
 /// <param name="typeParameterExpressions">The type parameter expressions.</param>
 /// <param name="ruleInputExp">The rule input exp.</param>
 /// <returns></returns>
 private Func <object[], object> GetDelegateForRuleParam(LocalParam param, RuleParameter[] ruleParameters)
 {
     return(_ruleExpressionParser.Compile <object>(param.Expression, ruleParameters));
 }
Esempio n. 4
0
 /// <summary>
 /// Gets the expression for rule.
 /// </summary>
 /// <param name="param">The rule.</param>
 /// <param name="typeParameterExpressions">The type parameter expressions.</param>
 /// <param name="ruleInputExp">The rule input exp.</param>
 /// <returns></returns>
 private Delegate GetDelegateForRuleParam(LocalParam param, RuleParameter[] ruleParameters)
 {
     return(_ruleExpressionParser.Compile(param.Expression, ruleParameters));
 }
Esempio n. 5
0
 /// <summary>
 /// Gets the expression for rule.
 /// </summary>
 /// <param name="param">The rule.</param>
 /// <param name="typeParameterExpressions">The type parameter expressions.</param>
 /// <param name="ruleInputExp">The rule input exp.</param>
 /// <returns></returns>
 private Expression GetExpressionForRuleParam(LocalParam param, IEnumerable <ParameterExpression> typeParameterExpressions, ParameterExpression ruleInputExp)
 {
     return(BuildExpression(param, typeParameterExpressions, ruleInputExp));
 }
 /// <summary>Builds the expression for rule parameter.</summary>
 /// <param name="rule">The rule.</param>
 /// <param name="typeParamExpressions">The type parameter expressions.</param>
 /// <param name="ruleInputExp">The rule input exp.</param>
 /// <returns>Expression.</returns>
 internal abstract Expression BuildExpressionForRuleParam(LocalParam rule, IEnumerable <ParameterExpression> typeParamExpressions, ParameterExpression ruleInputExp);