我試圖用給定的類型和屬性名稱來構建屬性選擇器表達式。即t => t.PropertyName。動態屬性選擇器lambda函數
以下代碼編譯得很好,但結果爲空值。有人可以指出代碼中的錯誤嗎?
public static Expression<Func<T,object>> CreatePropSelectorExpression(string propName) where T:class,new()
{
var temp = Activator.CreateInstance<T>();
ParameterExpression t = Expression.Parameter(typeof(T),"t");
MemberExpression member = Expression.PropertyOrField(Expression.Constant(temp),propName);
return Expression.Lambda<Func<T,object>>(member,t);
}
在此先感謝
不要打擾。已經找到了解決方案。 需要使用成員表達式而不是臨時變量 – user759141 2011-06-12 07:06:59