【发布时间】:2013-05-21 21:24:27
【问题描述】:
我正在尝试调用 Regex.IsMatch() 并在动态 linq 查询中评估返回的结果。这是我尝试过的:
public static LambdaExpression Parse(SearchQuery query)
{
string compilableExpression = "Regex.IsMatch(Category.ToLower(), \"\\bSomeCat\\b\", RegexOptions.Compiled) == true";
ParameterExpression parameter1 = System.Linq.Expressions.Expression.Parameter(typeof(EventListItem));
ParameterExpression parameter2 = System.Linq.Expressions.Expression.Parameter(typeof(Regex));
return System.Linq.Dynamic.DynamicExpression.ParseLambda(new[] { parameter1, parameter2 }, null, compilableExpression);
}
在这种情况下,Category 是EventListItem 中的一个属性。调用ParseLambda()时抛出此异常:
Unknown identifier 'Regex'.
有没有办法调用该方法?我遇到了Expression.Call() 方法,但我不确定这是否是我正在寻找的。任何帮助表示赞赏。
【问题讨论】:
标签: c# regex dynamic-linq