6

.NET 3.0(或更早版本)中有没有办法获取方法的字符串表示形式?我知道我可以从 MethodBody 对象中获取一个 IL 字节数组,但是我有兴趣获取一个基本上代表方法体的字符串,因为它在 VS 中出现在我的眼中。

我在 CodeDom 命名空间中四处寻找,看看是否有一种方法可以在运行时将方法转换为 CodeMemberMethods,但到目前为止我已经干了。

有什么想法吗?

4

2 回答 2

12

这是一项非常复杂的工作。基本上,您会在代码中查看重写反射器......并且不要忘记并非所有 IL 都可以反转。

简短的回答是“不,没有内置”。

即使是表达式树(来自 lambdas)也不能轻易地完全反转回适当的字符串。

于 2009-06-25T14:02:29.987 回答
2

尝试使用反射器 API(您可能想检查在 Red Gate 接管后它是否仍然可用)。

即使你成功了,你也会丢失一些原始信息,比如局部变量名、注释或一些格式。

基本上在编译过程中丢弃的所有东西都会永远丢失。

于 2009-06-25T14:37:04.410 回答