2010-03-16 130 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