public ExpressionChangerVisit(ExpressionVisitVisitor visitor, Type source, Type sink) { this.Visitor = visitor; this.Source = source; this.Sink = sink; if (visitor != null) { visitor.VisitLambdaFunc += VisitLambdaNG; visitor.VisitMemberFunc += VisitMember; visitor.VisitMemberAssignmentFunc += VisitMemberAssignment; visitor.VisitMemberBindingFunc += VisitMemberBinding; visitor.VisitMemberMemberBindingFunc += VisitMemberMemberBinding; visitor.VisitMemberListBindingFunc += VisitMemberListBinding; visitor.VisitMemberInitFunc += VisitMemberInit; visitor.VisitListInitFunc += VisitListInit; visitor.VisitElementInitFunc += VisitElementInit; visitor.VisitParameterFunc += VisitParameter; visitor.VisitMethodCallFunc += VisitMethodCall; visitor.VisitUnaryFunc += VisitUnary; } }
public static ExpressionChangerVisit Attach <S, T> (ExpressionVisitVisitor visitor) { return(new ExpressionChangerVisit(visitor, typeof(S), typeof(T))); }