私は.NETReflectorProを使用しており、「逆コンパイルされたアセンブリにステップインし、独自のコードで使用するすべてのデバッグ手法を使用する」機能を非常に頻繁に使用しています。次にいくつかの例を示します。
Citrix XenServer:
Citrix XenServerを使用し、C#XenAPIを使用して多くのプロセスを自動化します。APIを使用して特定の機能(スナップショット管理など)を実行するのに最適な方法がドキュメントから明らかでない場合があります。
Citrix XenServerには、XenCentreと呼ばれる管理フロントエンドが付属しています。XenCentreは、XenAPIおよびSDKツールに大きく依存する.NETWindowsフォームアプリケーションです。アプリケーションはオープンソースではありませんが、難読化されていません。Xen APIをよりよく理解できるように、Reflector Proを使用してコードにステップインしたり、ブレークポイントを設定したりしています。
それは私にとって非常に便利なツールであり、お金の価値が十分にありました(実際、オファーが実行されたときに購入したので、46.00ユーロしかかかりませんでした)。この機能により、コード(ala vanilla .NET Reflector)を静的に分解して操作したり、サポートチーム(非常に優れていますが、非常に優れていますが)から質問に答えられるのを待ったりするのではなく、数え切れないほどの時間を節約できました。 「人に魚を教える」....)または彼らのフォーラムで。
IIS Metabase Explorer 1.6:
このツールが便利だったもう1つの良い例は、IIS6 MetabaseExplorer1.6ツールです。.NETアプリケーションからIIS6ABO(管理ベースオブジェクト)COMAPIを呼び出す方法を理解する必要がありました。運が良ければ、このバージョンのMetabase Explorerは、ABOAPIのマネージド相互運用機能ラッパーを備えた.NETWindowsフォームアプリケーションであることがわかります。
「ステップイン」機能を使用して、.NETからABO APIを使用する方法、ブレークポイントを設定する方法、ライブ変数を調べる方法などを理解することができました。これも、かなり厄介になっていたものをかなり数時間短縮しました。タスク(ABO APIは、十分に文書化されていないか、わかりやすいものではありません)。
結論として、他の人のコードを実際に調べて、ブレークポイントを設定して実行時にアプリケーションの状態を確認できる必要がない限り、基本的なツールで十分な場合があります。ただし、多くの場合、アプリケーションまたはライブラリが実際に何を実行していて、それが「ライブ」状態であるかを確認する必要があるようです。.NET Reflectorを使用したRedGateの最新の策略の善悪に立ち入ることなく、傭兵の観点からは、それは非常に有用であるとされています。