public static bool TryFindArgumentFiltersWithin(Expression expression, out ArgumentFilterCollection argumentFilters) { Debug.Assert(expression != null); var visitor = new ArgumentFiltersVisitor(); try { visitor.Visit(expression); argumentFilters = visitor.argumentFilters; return(argumentFilters != null && argumentFilters.All(x => x != null)); } catch (Exception) { } argumentFilters = null; return(false); }
public static bool TryFindArgumentFiltersWithin(Expression expression, out ArgumentFilterCollection argumentFilters) { Debug.Assert(expression != null); var visitor = new ArgumentFiltersVisitor(); try { visitor.Visit(expression); argumentFilters = visitor.argumentFilters; return argumentFilters != null && argumentFilters.All(x => x != null); } catch (Exception) { } argumentFilters = null; return false; }
protected override Expression VisitMethodCall(MethodCallExpression node) { this.stringBuilder.Append(node.Method.Name).Append("("); ArgumentFilterCollection argumentFilters; if (ArgumentFiltersVisitor.TryFindArgumentFiltersWithin(node, out argumentFilters)) { for (var i = 0; i < argumentFilters.Count; ++i) { if (i > 0) { this.stringBuilder.Append(", "); } this.stringBuilder.Append(argumentFilters[i].ToString()); } } this.stringBuilder.Append(")"); return(node); }