我试图用给定的类型和属性名称来构建属性选择器表达式。即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