-1

让我马上给你看一些代码:

class MyClass {

    public MyClass(Customer c) {
        ExtractRoot(() => c.FirstName);
    }
}

ExtractRoot接受 aExpression<Func<object>>作为其参数。

我正在尝试从表达式树中提取客户对象“c”。我将它传递给该ExtractRoot方法,并且我知道如何获取ConstantExpression代表客户对象的那个。但是,当我调用ToString()该对象时,我会打印:
MyAssemblyName.CustomNamespace.MyClass+<>c__DisplayClass2

有人可以解释这意味着什么以及为什么我没有ToString()调用客户的方法,就好像我得到的对象不是客户一样,为什么以及我得到什么?

最后,我怎样才能得到实际的客户对象,或者我表达的根?

4

1 回答 1

0

我找到了我的答案的完整解决方案,它有两个部分:

  1. 为什么 DisplayClass 以及它的含义可以在这个问题的答案中找到:调用 lambda 时“DisplayClass”名称是什么意思?
  2. 如何获得表达式的实际根(顺便说一句)可以在这个问题答案中找到:Getting the object out of a MemberExpression
于 2013-07-29T11:46:57.823 回答