C#方法的字符串表示

时间:2009-06-25 14:00:12

标签: c# .net reflection codedom

.NET 3.0(或更早版本)中是否有办法获取方法的字符串表示形式?我知道我可以从MethodBody对象获得一个IL字节数组,但是我有兴趣获得一个字符串,它实际上代表了我在VS眼中看起来的方法体。

我在CodeDom命名空间中查看是否有办法在运行时将方法转换为CodeMemberMethods,但到目前为止我已经干了。

有什么想法吗?

2 个答案:

答案 0 :(得分:12)

这是非常复杂的工作。基本上,你会考虑在你的代码中重写reflector ......并且不要忘记并非所有IL都可以被逆转。

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

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

答案 1 :(得分:2)

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

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

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