MSDN说:
编译器还可以为您构建表达式树。编译器生成的表达式树总是根植于类型表达式的节点中;也就是说,它的根节点表示lambda表达式。
但是,如果我想构建一个根植于MethodCallExpression、BinaryExpression等类型节点的表达式树呢?也不想手动这么做。
发布于 2009-09-15 14:06:51
解决方法是声明2个助手函数。
public Expression GetBody(Expression<Action> lambda)
{
return lambda.Body;
}
public Expression GetBody<TResult>(Expression<Func<TResult>> lambda)
{
return lambda.Body;
}用法示例:
var e1 = (MethodCallExpression)GetBody(() => this.FunA());
var e2 = (ConstantExpression)GetBody(() => 4 + 5);
var e3 = (BinaryExpression)GetBody(() => a + b);https://stackoverflow.com/questions/1427399
复制相似问题