/// <summary> /// Visits a <see cref="SerializableBinaryExpression"/>. /// </summary> /// <param name="expression"><see cref="SerializableBinaryExpression"/> to visit.</param> /// <returns>Returns the converted <see cref="Expression"/>.</returns> protected override Expression VisitSerializableBinaryExpression(SerializableBinaryExpression expression) { Expression left = Visit(expression.Left); Expression right = Visit(expression.Right); LambdaExpression conversion = (LambdaExpression)Visit(expression.Conversion); MethodInfo method = expression.Method != null ? (MethodInfo)expression.Method.GetClrVersion() : null; return(Expression.MakeBinary(expression.NodeType, left, right, expression.IsLiftedToNull, method, conversion)); }
/// <summary> /// Visits a <see cref="SerializableBinaryExpression"/>. /// </summary> /// <param name="expression"><see cref="SerializableBinaryExpression"/> to visit.</param> /// <returns>Returns the converted <see cref="Expression"/>.</returns> protected abstract Expression VisitSerializableBinaryExpression(SerializableBinaryExpression expression);
private Expression VisitBinary(SerializableBinaryExpression b) { return(Expression.MakeBinary(b.NodeType, Visit(b.Left), Visit(b.Right), b.IsLiftedToNull, b.Method)); }