【问题标题】:Extracting input arguments from Lambda expressions从 Lambda 表达式中提取输入参数
【发布时间】:2011-07-08 12:42:49
【问题描述】:

我有接受 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);

等等。你明白了。

【问题讨论】:

标签: c# .net linq lambda


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多