Skip to content

Instantly share code, notes, and snippets.

@ahmad2x4
Created September 28, 2014 00:42
Show Gist options
  • Save ahmad2x4/bce451d879bd731b2de5 to your computer and use it in GitHub Desktop.
Save ahmad2x4/bce451d879bd731b2de5 to your computer and use it in GitHub Desktop.
blog automapper expression
class ParameterReplacer : ExpressionVisitor
{
private readonly ParameterExpression _parameter;
private readonly Expression _replacement;
private ParameterReplacer(ParameterExpression parameter, Expression replacement)
{
_parameter = parameter;
_replacement = replacement;
}
public static Expression Replace(Expression expression, ParameterExpression parameter, Expression replacement)
{
return new ParameterReplacer(parameter, replacement).Visit(expression);
}
protected override Expression VisitParameter(ParameterExpression parameter)
{
if (parameter == _parameter)
{
return _replacement;
}
return base.VisitParameter(parameter);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment