ChangParameterExpressionVisitor.cs 737 B

1234567891011121314151617181920212223242526
  1. using System.Linq;
  2. using System.Linq.Expressions;
  3. namespace Masuit.Tools.Mapping.Visitor
  4. {
  5. internal class ChangParameterExpressionVisitor : ExpressionVisitor
  6. {
  7. private readonly Expression[] _parameter;
  8. internal ChangParameterExpressionVisitor(params Expression[] parameter)
  9. {
  10. _parameter = parameter;
  11. }
  12. protected override Expression VisitParameter(ParameterExpression node)
  13. {
  14. if (node != null)
  15. {
  16. Expression returnParameter = _parameter.FirstOrDefault(x => x.Type == node.Type);
  17. if (returnParameter != null)
  18. return returnParameter;
  19. }
  20. return node;
  21. }
  22. }
  23. }