Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Main()
- {
- Expression<Func<string, int>> expr = s => s.Length;
- expr.Dump();
- var visitor = new ParameterReplacementVisitor(
- expr.Parameters[0],
- Expression.Parameter(typeof(string), "x"));
- var newExpr = visitor.Visit(expr);
- newExpr.Dump();
- }
- public class ParameterReplacementVisitor : ExpressionVisitor
- {
- private readonly ParameterExpression _oldParam;
- private readonly ParameterExpression _newParam;
- public ParameterReplacementVisitor(ParameterExpression oldParam, ParameterExpression newParam)
- {
- _oldParam = oldParam;
- _newParam = newParam;
- }
- protected override Expression VisitParameter(ParameterExpression parameter)
- {
- if (parameter == _oldParam)
- return _newParam;
- return parameter;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement