Best (free?) decompiler for C# with Visual Studio integration?

Soraz picture Soraz · Oct 18, 2008 · Viewed 41.4k times · Source

In my Java development I have had great benefit from the Jad/JadClipse decompiler. It made it possible to know why a third-party library failed rather than the usual guesswork.

I am looking for a similar setup for C# and Visual Studio. That is, a setup where I can point to any class or variable in my code and get a code view for that particular class.

What is the best setup for this? I want to be able to use the usual "jump to declaration/implementation" that I use to navigate my own code. It doesn't have to be free, but it would be a bonus if it was.

It should support Visual Studio 2008 or Visual Studio 2005 and .NET 2 and 3(.5).

Answer

splattne picture splattne · Oct 18, 2008

Here is a good article about Reflector and how to integrate Reflector into Visual Studio.

Of particular interest is the Reflector.VisualStudio Add-In. This add-in, created by Jaime Cansdale, allows for Reflector to be hosted within Visual Studio. With this add-in, you can have Reflector integrated within the Visual Studio environment.

To get started, you will need to have the latest version of Reflector on your machine. Once you have downloaded Reflector, download the latest version of the Reflector.VisualStudio Add-In from http://www.testdriven.NET/reflector. The download contains a number of files that need to be placed in the same directory as Reflector.exe. To install the add-in, drop to the command line and run:

Reflector.VisualStudio.exe /install

After the add-in has been installed, you can start using Reflector from Visual Studio. You’ll notice a new menu item, Addins, which has a menu option titled Reflector. This option, when selected, displays the Reflector window, which can be docked in the IDE. Additionally, the add-in provides context menu support.

When you right-click in an open code file in Visual Studio, you’ll see a Reflector menu item that expands into a submenu with options to disassemble the code into C# or Visual Basic, display the call graph or callee graph, and other related choices. The context menu also includes a Synchronize with Reflector menu item that, when clicked, syncs the object browser tree in the Reflector window with the current code file.