public static bool TryFindArgumentFilterWithin(Expression expression, out IArgumentFilter argumentFilter) { Debug.Assert(expression != null); var visitor = new ArgumentFilterVisitor(); visitor.Visit(expression); argumentFilter = visitor.argumentFilter; return argumentFilter != null; }
public static bool TryFindArgumentFilterWithin(Expression expression, out IArgumentFilter argumentFilter) { Debug.Assert(expression != null); var visitor = new ArgumentFilterVisitor(); visitor.Visit(expression); argumentFilter = visitor.argumentFilter; return(argumentFilter != null); }
protected override Expression VisitMethodCall(MethodCallExpression node) { this.argumentFilters = new ArgumentFilterCollection(); var methodParameters = node.Method.GetParameters(); for (var i = 0; i < methodParameters.Length; ++i) { if (methodParameters[i].ParameterType.IsByRef || methodParameters[i].IsOut) { this.argumentFilters.Add(IsAnyArgumentFilter <object> .Instance); } else { this.argumentFilters.Add(ArgumentFilterVisitor.FindArgumentFilterWithin(node.Arguments[i])); } } return(Expression.Constant(this.argumentFilters)); }