Are you a .NET developer? Do you like dissecting applications and finding specific information about them? If so, then you’ll want an application like ILSpy which can analyze programs developed in .NET and inspect every one of their components. By doing this, you can determine how the program was assembled originally.
ILSpy is a better tool than its competitors because it is free and easy to use. It is also an open-source program which requires no installation. Since it is a portable application, you can run it off a USB flash drive, external hard drive, or personal computer just the same.
Find .NET Assemblies
When you launch the application, the main window is laid out clearly and features 2 panes. The first pane lets you view the .NET assemblies in a tree. That way, you can view a selection item more closely. You can inspect WINMD, DLL, and EXE files this way too. GAC data can get loaded, and you can open Nuget packages too.
The application can render IL, C#, and IL code with the code in C#. If you are rendering C#, your choice ranges between C# 1.0 / VS .NET and C# 7.2 / VS 2017. You’ll have the ability to view references, resources, tables, and conduct information extraction to a file.
The application is designed for viewing purposes only. For this reason, file modifications are not possible. However, you can use a search function to find specific members, types, fields, methods, events, properties, metadata tokens, or constants.
You can configure many decompiler settings, including debug symbol variable names, eliminating dead code, eliminating side effect code, and member definition expansion following decompilation. Also, several instances are allowed, and the font is customizable.
Overall, ILSpy allows decompiling .NET assemblies to be quite simple. It is easy for developers to modify the existing code and use it for their own purposes because it is an open source program.
Features and Highlights
- Decompilation to C#
- Whole-project decompilation (csproj, not sln!)
- Search for types/methods/properties (substring)
- Hyperlink-based type/method/property navigation
- Base/Derived types navigation, history
- BAML to XAML decompiler
- Extensible via plugins (MEF)