使用反射从编译的类中获取 ToString-expression?

Get ToString-expression from compiled class using reflection?

提问人:Andreas Zita 提问时间:10/1/2021 最后编辑:Andreas Zita 更新时间:10/1/2021 访问量:51

问:

我有一个这样的课程:

public class Person
{
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public override string ToString() => $"{LastName}, {FirstName}";
}

我希望能够在运行时使用反射提取 ToString 表达式,如下所示:

var exp = typeof(Person).GetMethod("ToString").GetMethodBodyAsString();

其中 exp 是这样的:“${LastName}, {FirstName}”,或者至少足以使得通过更多的努力来重建表达式成为可能。

是否可以从方法体上的反射返回的 IL 代码中提取此内容?

C# 反射 中间语言

评论

0赞 Wouter de Kort 10/1/2021
将 C# 代码编译为 IL。您可以从编译的程序集中获取 IL,但我不知道这是否能解决您正在查看的问题。你想达到什么目的?
2赞 Robert Harvey 10/1/2021
请阅读 xyproblem.info 并回复。如果确实需要获取该格式字符串的功能,最简单的方法是声明包含该字符串的属性,然后在对方法的调用中使用该字符串。string.Format()ToString()

答: 暂无答案