Example #1
0
        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);
        }
Example #2
0
        protected override MemberBinding VisitMemberBinding(MemberBinding node)
        {
            _currentField = _target.StartBinding(node.Member.Name);

            return(base.VisitMemberBinding(node));
        }