.NET 3.0(或更早版本)中有没有办法获取方法的字符串表示形式?我知道我可以从 MethodBody 对象中获取一个 IL 字节数组,但是我有兴趣获取一个基本上代表方法体的字符串,因为它在 VS 中出现在我的眼中。
我在 CodeDom 命名空间中四处寻找,看看是否有一种方法可以在运行时将方法转换为 CodeMemberMethods,但到目前为止我已经干了。
有什么想法吗?
.NET 3.0(或更早版本)中有没有办法获取方法的字符串表示形式?我知道我可以从 MethodBody 对象中获取一个 IL 字节数组,但是我有兴趣获取一个基本上代表方法体的字符串,因为它在 VS 中出现在我的眼中。
我在 CodeDom 命名空间中四处寻找,看看是否有一种方法可以在运行时将方法转换为 CodeMemberMethods,但到目前为止我已经干了。
有什么想法吗?
这是一项非常复杂的工作。基本上,您会在代码中查看重写反射器......并且不要忘记并非所有 IL 都可以反转。
简短的回答是“不,没有内置”。
即使是表达式树(来自 lambdas)也不能轻易地完全反转回适当的字符串。
尝试使用反射器 API(您可能想检查在 Red Gate 接管后它是否仍然可用)。
即使你成功了,你也会丢失一些原始信息,比如局部变量名、注释或一些格式。
基本上在编译过程中丢弃的所有东西都会永远丢失。