1

を呼び出して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()たが、それが探しているものかどうかはわかりません。どんな助けでも大歓迎です。

4

1 に答える 1