Saturday, August 27, 2011

ILSpy-Alternative of .NET Reflector

Sometimes we need to have decomposer tool or reflector tool for our applications to improve the performance or to know the internals of the assembly we have created. I was using Red Gate .NET Reflector earlier for same as it was free. Now Red Gate has made that tool paid version so I was finding some tools from that I can decompile the stuff. After digging some time on the internet I have found a great tool ILSpy which almost giving same functionalities like .NET Reflector. You can download that tool from following link.

You will get following features in ILSpy. It is also listed on above page.
  • Assembly browsing
  • IL Disassembly
  • Decompilation to C#
    • Supports lambdas and 'yield return'
    • Shows XML documentation
  • Saving of resources
  • Search for types/methods/properties (substring)
  • Hyperlink-based type/method/property navigation
  • Base/Derived types navigation
  • Navigation history
  • BAML to XAML decompiler
  • Save Assembly as C# Project
  • Find usage of field/method
  • Extensible via plugins (MEF)

Now let’s see how we can use ILSpy for decompiling our application. I have created a very basic console application which will concat string and print name. Here I have intentionally used string concatenation instead of StringBuilder class to show what’s going internally with ILSpy. Following is code for that.

using System;
namespace ThisExample
     class Program
          static void Main(string[] args)
              Test test = new Test();
     public class Test
          private string name = "Jalpesh Vadgama";
          public void PrintName()
              name += " vishal vadgama";

Once we are done with code let’s run that application and following will be a output.

Output window for ILSpy-Alternative of .NET Reflector

Let’s check that console application with the ILSpy. Once you double click exe of ILSpy it will look like following.

ILSpy- Alternative of .NET Reflector

Now let’s open our application via File->Open Menu. So it will load our application like following

ClassHirerchay with ILSpy-.NET Reflector Alternative

As you can see in above screenshot It has loaded whole class hierarchy of console application we have just created as we can see Program and Test class directly and on right hand pane it has loaded whole assembly information for this application. You can see that in below image.

AssemblyInformation from ILSpy- Alternative of .NET Reflector

Now once you click on program it will load program information on right pane like following.

RightPane of code from ILSpy-.NET Reflector Alternative

Event it’s provide IL mode also so you can see what’s going on internally on top its having button like this.

You can select IL from ILSpy-Alternative .NET Reflector

Once you select IL you right pane will load IL like following.In that you can see its using concat method


So you can see its almost providing functionalities which was provided by .NET Reflector. Hope you like it.. stay tuned for more..till then happy programming.

Shout it
kick it on


Post a Comment

Your feedback is very important to me. Please provide your feedback via putting comments.

About Me
My Photo

Full Stack Developer,Blogger,Microsoft Mvp, Mentor, Life long learner, 10+ Years of Experience for JavaScript, web and Microsoft technologies. ASP.NET MVC,Web Forms,C#,AngularJs,Golang
Mvp profile
Subscribe to my blog

Enter your email address:

Follow us on facebook
Blog Archive
Total Pageviews