从Lambda表达式中提取输入参数

时间:2011-07-08 12:42:50

标签: c# .net linq lambda

我有接受LambdaExpression作为参数

的方法
    public void SomeMethod(Expression<Func<SomeObject, bool>> predicate)
    { }

在这个方法中我想从表达式Body中提取成员和参数值。这有可能吗?如何实现?

可以像这样调用方法:

    SomeMethod(t=> t.Id == 3 && t.Name=="Name");

    SomeMethod(t=> t.Id.Equals(3));

    SomeMethod(t=> t.Id > 3 || t.Id = 1);

等。你明白了。

1 个答案:

答案 0 :(得分:2)

您正在寻找的解决方案称为Expression Tree Visitor。 通过使用它,你可以通过lambda表达式成员和参数。

walkthrough也许有用,它包含lambda表达式部分赋值器的代码,以防lambda表达式中的参数不是常量

相关问题