/// <inheritdoc/> public IParameterBuilderWithParameter Trace <TParam, TValue>(string parameterName, string alias, params Expression <Func <TParam, TValue> >[] accessorExpressions) { if (accessorExpressions == null) { throw new ArgumentNullException("accessorExpressions"); } ParameterBuilder newBuilder = New(); ParameterBuilder builder = newBuilder; foreach (var a in accessorExpressions) { // attempt to get the name of the parameter off of a simple expression string accessorAlias = null; MemberExpression expression = a.Body as MemberExpression; if (expression != null) { accessorAlias = expression.Member.Name; } builder = builder.AndImpl(parameterName, accessorAlias, a); } // make sure that the alias is always the parameter name if (alias != null) { newBuilder.Alias = alias; } return(builder); }
/// <inheritdoc/> public IParameterBuilderWithParameter And(params string[] parameterNames) { if (parameterNames == null) { throw new ArgumentNullException("parameterNames"); } ParameterBuilder builder = this; foreach (var p in parameterNames) { builder = (ParameterBuilder)builder.AndImpl(p, p, (LambdaExpression)null); } return(builder); }