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