public ReplaceParametersVisitorTest() { _dictionary = new Dictionary <string, object>() { { "i", 10 }, { "a", "asd" }, { "b", 10.0 }, { "c", new object() }, }; _visitor = new ReplaceParametersVisitor(_dictionary); }
/// <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)); }
/// <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)); }