Esempio n. 1
0
        public ReplaceParametersVisitorTest()
        {
            _dictionary = new Dictionary <string, object>()
            {
                { "i", 10 },
                { "a", "asd" },
                { "b", 10.0 },
                { "c", new object() },
            };

            _visitor = new ReplaceParametersVisitor(_dictionary);
        }
Esempio n. 2
0
        /// <summary>
        /// Replace multiple parameters by items in <paramref name="newExpressions"/>.
        /// </summary>
        /// <param name="expression">The expression.</param>
        /// <param name="newExpressions">The dictionary with replacements.</param>
        /// <returns>New expression with applied replacement.</returns>
        public static Expression ReplaceParameters(
            this Expression expression,
            IReadOnlyDictionary <ParameterExpression, Expression> newExpressions)
        {
            if (expression == null)
            {
                throw new ArgumentNullException(nameof(expression));
            }

            if (newExpressions == null)
            {
                throw new ArgumentNullException(nameof(newExpressions));
            }

            var visitor = new ReplaceParametersVisitor(newExpressions);

            return(visitor.Visit(expression));
        }
Esempio n. 3
0
        /// <summary>
        ///     Replaces parameter in expression using replace function
        /// </summary>
        public static Expression ReplaceParameters(Expression expression, Func <ParameterExpression, Expression> replace)
        {
            var visitor = new ReplaceParametersVisitor(replace);

            return(visitor.Visit(expression));
        }