正在获取表达式的根

本文关键字:表达式 获取 | 更新日期: 2023-09-27 18:25:11

让我立即向您展示一些代码:

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

CCD_ 1正在接受CCD_ 2作为其参数。

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

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

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

正在获取表达式的根

我已经找到了我的答案的完整解决方案,它包括两部分:

  1. 为什么使用DisplayClass及其含义可以在以下问题的答案中找到:调用lambda时,"DisplayClass"名称的含义是什么
  2. 如何获取表达式的实际根(顺便说一句,这是可能的)可以在以下问题中找到答案:从MemberExpression中获取对象