我使用 .NET Reflector Pro 并大量使用“步入反编译程序集并使用您将在自己的代码上使用的所有调试技术”功能。这里有几个例子:
思杰 XenServer:
我们使用 Citrix XenServer 并使用 C# Xen API 自动化许多流程。有时从文档中看不出如何最好地使用 API 来执行某些功能(例如快照管理)。
Citrix XenServer 带有一个名为 XenCentre 的管理前端。XenCentre 是一个 .NET Windows 窗体应用程序,它严重依赖于 Xen API 和 SDK 工具。虽然该应用程序不是开源的,但他们没有对其进行混淆。我使用 Reflector Pro 进入他们的代码,设置断点等,这样我可以更好地理解 Xen API。
这对我来说是一个非常有用的工具,而且物有所值(事实上,我在他们有报价时购买了我的,所以它只花了我 46.00 欧元)。由于这个功能,我节省了无数小时,而不仅仅是拥有一个静态反汇编的代码视图(ala vanilla .NET Reflector),或者等待他们的支持团队回答问题(他们非常好,但是“教人钓鱼”....)或在他们的论坛上。
IIS 元数据库浏览器 1.6:
该工具派上用场的另一个很好的例子是 IIS6 Metabase Explorer 1.6 工具。我需要了解如何从 .NET 应用程序调用 IIS6 ABO(管理基础对象)COM API。幸运的是,这个版本的 Metabase Explorer 是一个 .NET Windows 窗体应用程序,带有一个围绕 ABO API 的托管互操作包装器。
使用“步入”功能,我能够了解如何使用 .NET 中的 ABO API、设置断点、检查实时变量等。再一次,这使相当痛苦的事情减少了几个小时任务(ABO API 的文档并不完整或友好)。
总而言之,除非您确实需要查看其他人的代码,并且您需要能够设置断点并在运行时查看应用程序的状态,否则基本工具可能足以满足您的需求。然而,更多时候,我似乎发现自己需要查看应用程序或库实际在做什么以及它处于“实时”状态。无需深入探讨 RedGate 最新的 .NET Reflector 滑稽动作是非,从雇佣兵的角度来看,它非常有用。