protected sealed override CamlExpression VisitBindedExpression(CamlBindedExpression expression) { CamlBindedExpression result = (CamlBindedExpression)base.VisitBindedExpression(expression); if (result.Expression == Caml.False) { return(Caml.False); } return(result); }
/// <summary> /// Called when visiting a CAML expression with binded values. /// </summary> /// <param name="expression">An instance of the <see cref="CamlBindedExpression"/> class representing the value-binded expression.</param> /// <returns>When overriden, returns an expression to replace the expression given in arguments.</returns> protected virtual CamlExpression VisitBindedExpression(CamlBindedExpression expression) { Hashtable previous = this.Bindings; try { this.Bindings = expression.Bindings; CamlExpression result = Visit(expression.Expression); if (result != expression.Expression) { return(new CamlBindedExpression(result, this.Bindings)); } return(expression); } finally { this.Bindings = previous; } }