如何构建字符串的Expression Tree,其中包含 string.IndexOf("substring", StringComparison.OrdinalIgnoreCase)
?
如果没有第二个参数StringComparison.OrdinalIgnoreCase
,可以使其成功运行。以下是我目前尝试过的:
var methodCall = typeof (string).GetMethod("IndexOf", new[] {typeof (string)});
Expression[] parms = new Expression[]{right, Expression.Constant("StringComparison.OrdinalIgnoreCase", typeof (Enum))};
var exp = Expression.Call(left, methodCall, parms);
return exp;
我也尝试了这个:
var methodCall = typeof (string).GetMethod(method, new[] {typeof (string)});
Expression[] parms = new Expression[]{right, Expression.Parameter(typeof(Enum) , "StringComparison.OrdinalIgnoreCase")};
var exp = Expression.Call(left, methodCall, parms);
return exp;
请记住,如果我忽略
OrdinalIgnoreCase
参数,我可以让它起作用。谢谢。