【发布时间】:2012-06-23 08:23:01
【问题描述】:
public class Job
{
public string Name { get; set; }
public int Salary { get; set; }
}
public class Employee
{
public string Name { get; set; }
public Job Job { get; set; }
}
如果我想创建一个成员访问 Employee.Name 的表达式树,这就是我要做的:
var param = Expression.Parameter(type, "x");
var memberAccess = Expression.PropertyOrField(param, memberName);
return Expression.Lambda<Func<TModel, TMember>>(memberAccess, param);
对于访问 Employee.Job.Salary 的成员来说,这相当于什么?
【问题讨论】:
-
我已经尝试使用我创建的 memberAccess 并在其上创建另一个 memberAccess:Expression.PropertyOrField(baseMemberAccess, memberName),但它不起作用,它尝试在基础中找到 memberName成员访问函数
标签: c# linq lambda expression expression-trees