.Net Reflector,.net reflector怎么用

  .Net Reflector,.net reflector怎么用

  对于没有任何源代码和PDB文件的预编译程序集,没有合适的工具是不容易调试的。用红门的。NET Reflector,您可以在Visual Studio中立即反编译程序集,然后在一个步骤中跟踪它,就像您在用源代码调试程序集一样。

  你需要知道。NET Reflector(在VS和VSPro版本中)可以集成到Visual Studio中。的标准内置对象浏览器。NET只显示公共方法和类(见图1),而。NET Reflector(见图2)可以对编译后的程序集进行更深入的分析,并允许用户浏览内部的类、方法和代码。红门的Visual Studio插件。NET Reflector可以即时反编译。若要调试已编译的程序集,用户可以在解决方案浏览器窗口中右击程序集,然后选择“启用调试”选项。的。NET Reflector将首先尝试在自己的计算机上定位PDB文件,如果没有找到,它将创建自己的PDB文件。然后,用户可以单步执行汇编代码,设置断点,并使用传统的调试技术(参见图4)。

  (点击图片放大)

  图1内置对象浏览器

  (点击图片放大)

  图二。NET反射器对象浏览器

  图3启用对调试已编译程序集的支持

  (点击图片放大)

  图4调试编译后的程序集

  有了Visual Studio中的这个工具,花在诊断第三方库的问题上的时间会大大减少。

  InfoQ记者乔纳森艾伦写道,

  “在多团队项目中,我经常会收到其他咨询公司的编译好的程序集,但是没有源代码。如果另一个团队在国家的另一边,甚至在世界的另一边,我一个人可能要花一天甚至更多的时间去沟通。我尝试使用了Reflector的调试器支持,被它的性能震惊了。我可以自己诊断问题,并且不需要很长时间就可以启动并运行测试服务器。

  只有两点我不满意。首先,它不能处理C CLI程序集。遇到这种汇编,我只能用JetBrain的dotPeek。其次,在没有解决方案文件的情况下调试时,我没有明确的方法打开任何汇编文件。我可以很容易地附加到一个正在运行的进程,但是当我真的想看到一些东西时,我需要触发一个异常。然后我可以在堆栈中上下导航异常,并在我真正需要的地方设置断点。"

  的。NET Reflector由一系列插件支持,最近红门直接集成了流行的插件PowerCommands(由Jason Haley提供)(图5)。

  图5电源命令

  红色大门。NET Reflector是商业软件。它将定期更新,以跟上新技术和工具的步伐。7月22日,NET Reflector 7.6.0.808可供下载。

  Sergey Barskiy,作为一名拥有多年使用Reflector经验的. NET开发人员,写道:

  “当7.6版本发布时,我非常激动。这个版本将为新技术提供支持。当时微软发布了大量激动人心的产品和技术——Windows 8和WinRT库,Visual Studio 2012,NET 4.5和C# 5中添加了新的异步函数。所有这些新技术都得到Reflector 7.6的支持。”

  2011年3月14日,随着。网反光板7,红门使其成为商业产品。该公司的几个竞争对手立即免费发布了他们的软件,包括JetBrains DotPeek、Telerik JustDecompile、ILSpy和CodeReflect。

  JetBrains DotPeek(见图6)是最先进的一种。网络反编译器。生成的代码质量很高,它会尝试从源代码服务器抓取代码。DotPeek的导航功能和快捷键非常方便。还能准确找到符号的用法,支持插件。DotPeek不能与Visual Studio集成。

  (点击图片放大)

  图6点峰值

  Telerik JustDecompile是免费的。NET反编译器,但它有商业支持。它生成的代码质量也非常高。它可以为反编译程序集获得的代码创建一个项目。JustDecompile提供了健壮的搜索功能,可以支持全文搜索和符号搜索。它还有一个插件系统,目前在Telerik的网站上有两个扩展。JustDecompile无法与Visual Studio集成。

  (点击图片放大)

  图7只是反编译

  (点击图片放大)

  图8查找刚刚反汇编的对话框

  ILSpy是唯一的免费开源软件。NET decompiler,它是基于MIT许可证发布的。ILSpy的代码生成和语法高亮功能都很不错。对于反编译的程序集,它可以将它保存在一个文件中,也可以为所有文件创建一个项目。ILSpy是一个独立的工具,与Visual Studio没有集成。

  (点击图片放大)

  图9伊尔斯皮

  与其他免费或商业竞争产品相比,CodeReflect不增加任何功能。这是一个商业维护。NET反编译器,具有相对简单的功能集,没有多余的功能。它提供了非常基本的代码生成和语法高亮功能。它不能保存文件或创建项目。用户只能复制其反编译生成的代码。当然不能和Visual Studio集成。

  (点击图片放大)

  图10代码反映

  无论用户是否愿意为Visual Studio集成付费,他们总能找到合适的免费或付费。市场上的网络反编译器。

  查看英文原文:http://www.infoq.com/news/2012/08/precompiled-net-reflector

.Net Reflector,.net reflector怎么用