コード例 #1
0
        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;
            }
        }
コード例 #2
0
 public static ExpressionChangerVisit Attach <S, T> (ExpressionVisitVisitor visitor)
 {
     return(new ExpressionChangerVisit(visitor, typeof(S), typeof(T)));
 }