/// <summary> /// Visits a <see cref="SerializableNewExpression"/>. /// </summary> /// <param name="expression"><see cref="SerializableNewExpression"/> to visit.</param> /// <returns>Returns the converted <see cref="Expression"/>.</returns> protected override Expression VisitSerializableNewExpression(SerializableNewExpression expression) { if (expression.Members == null) { return(Expression.New((ConstructorInfo)expression.Constructor.GetClrVersion(), VisitCollection <Expression>(expression.Arguments))); } return(Expression.New((ConstructorInfo)expression.Constructor.GetClrVersion(), VisitCollection <Expression>(expression.Arguments), expression.Members.Select(m => m.GetClrVersion()))); }
private Expression VisitNew(SerializableNewExpression n) { if (n.Constructor == null) { return(Expression.New(n.Type)); } if (n.Members != null && n.Members.Length > 0) { return(Expression.New(n.Constructor, VisitExpressionSequence(n.Arguments), n.Members)); } return(Expression.New(n.Constructor, VisitExpressionSequence(n.Arguments))); }
/// <summary> /// Visits a <see cref="SerializableNewExpression"/>. /// </summary> /// <param name="expression"><see cref="SerializableNewExpression"/> to visit.</param> /// <returns>Returns the converted <see cref="Expression"/>.</returns> protected abstract Expression VisitSerializableNewExpression(SerializableNewExpression expression);