代码之家  ›  专栏  ›  技术社区  ›  alexn

获取表达式参数名称

  •  3
  • alexn  · 技术社区  · 14 年前

    我需要得到表达式参数的名称。我想做的与FluentHibernate对列映射所做的类似:

    地图(x=>x.name)

    从这里,我需要“名字”。

    我该怎么做?

    我可以得到 x 这样做:

    Expression<Func<User, object>> exp = x => x.Id;
    exp.Parameters[0].Name;
    

    但我不能得到“名字”。请注意,我没有任何可以调用的T实例。 谢谢

    1 回复  |  直到 14 年前
        1
  •  7
  •   leppie    14 年前
    (expr.Body as MemberExpression).Member.Name
    

    当表达式返回时 object 将用转换表达式包装正文。

    以下内容应该有效。

    ((expr.Body as UnaryExpression).Operand as MemberExpression).Member.Name