protected override Expression VisitParameter(ParameterExpression p) { InvocationExpander expander = this; while (null != expander) { if (expander._parameter == p) { return(base.Visit(expander._expansion)); } expander = expander._previous; } return(base.VisitParameter(p)); }
public InvocationExpander(ParameterExpression _parameter, Expression _expansion, InvocationExpander _previous) { this._parameter = _parameter; this._expansion = _expansion; this._previous = _previous; }