2010-03-16 47 views
0

以下代码:Expression.Call()来String.Equals()抛出错误

var constant = Expression.Constant("find me", typeof(string)); 

// memberExpression evaluates to a string 
var predicate = Expression.Call(memberExpression, "Equals", null, constant); 

被引发错误一种以上的方法在类型“等于”“System.String”与兼容提供的参数

我猜是因为有Equals(Object)Equals(String) - 有什么办法,我指定我的意思是通过的Expression.Call()的重载需要一个实例方法名称作为一个字符串使用哪种方法?

还是我必须做出对呼叫Equals()特殊情况采取MethodInfo呢?

回答

2

您需要通过MethodInfo