protected override Expression VisitNew(NewExpression expression) { if (_target != null) { return(base.VisitNew(expression)); } _target = new TargetObject(expression.Type); var parameters = expression.Constructor.GetParameters(); for (var i = 0; i < parameters.Length; i++) { _currentField = _target.StartBinding(parameters[i].Name); Visit(expression.Arguments[i]); } return(expression); }
protected override MemberBinding VisitMemberBinding(MemberBinding node) { _currentField = _target.StartBinding(node.Member.Name); return(base.VisitMemberBinding(node)); }