Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Everything / Languages / MSIL

MSIL

MSIL

Great Reads

by Mark Pelf
Overview of 5 free .NET Decompilers
by Jerry.Wang
Modify methods' IL codes on runtime even if they have been JIT-compiled, supports release mode / x64 & x86, and variants of .NET versions, from 2.0 to 4.5.
by Florian Rosmann
COM Interop using a little post compiler. As a result, it is possible to use multithreading in combination with COM interfaces.
by Daniel Pistelli
An article about .NET internals and code injection

Latest Articles

by Mark Pelf
Overview of 5 free .NET Decompilers
by Jerry.Wang
Modify methods' IL codes on runtime even if they have been JIT-compiled, supports release mode / x64 & x86, and variants of .NET versions, from 2.0 to 4.5.
by Florian Rosmann
COM Interop using a little post compiler. As a result, it is possible to use multithreading in combination with COM interfaces.
by Daniel Pistelli
An article about .NET internals and code injection

All Articles

Sort by Score

MSIL 

by Mark Pelf
Overview of 5 free .NET Decompilers
by Jerry.Wang
Modify methods' IL codes on runtime even if they have been JIT-compiled, supports release mode / x64 & x86, and variants of .NET versions, from 2.0 to 4.5.
by Florian Rosmann
COM Interop using a little post compiler. As a result, it is possible to use multithreading in combination with COM interfaces.
by Daniel Pistelli
An article about .NET internals and code injection
by Daniel Pistelli
An article about .NET internals and native compiling.
by Chris Stefano
Generate loader classes for faster operation using Reflection.Emit
by asheesh goja
A high performance binary serializer using Microsoft Common Intermediate Language
by Sander Rossel
Journey to the center of the .NET Framework with a chance of IL along the way!
by Valer BOCAN
Microsoft Intermediate Language (MSIL) may be improved by adding a few new instructions
by Reto Ravasio
A WPF app that uses dynamic types and databinding for displaying MSI files.
by Anton Ponomarev
By following steps outlined in this article, you will be able to get Report Viewer to generate reports in Microsoft Word formats (DOC, RTF, WordprocessingML, and OOXML) when working in the local mode.
by Rene Pally
Advanced .NET Debugging Extracting Information from Memory
by Buu Nguyen
Discusses the new features of C# 4.0 including dynamic lookup, covariance/contravariance generics, named and optional paramters
by GaryWoodfine
Analysis of the CIL generated by the .net compiler for 4 Languages in VS 2005
by Hugo Pais Batista
Avoid unnecessary variable declaration and redundant instructions. Analyzing and understanding the compiler and generated IL instructions in a simple example, saving your performance.
by Sebastien Lebreton
Reflexil is an assembly editor and runs as a plug-in for Reflector or JustDecompile. Reflexil is able to manipulate IL code and save the modified assemblies to disk. Reflexil also supports "on-the-fly" C#/VB.NET code injection.
by Peter Rilling
Implement support for broadcasting events to all ancestors in a control hierarchy for Win Forms applications.
by Jason R. Fruit
Implement a compiling calculator to learn about .NET CIL compilation
by Chua Wen Ching
Building Security Awareness in .NET Assemblies : Part 1 of 3
by Chua Wen Ching
Building Security Awareness in .NET Assemblies : Part 2 of 3
by Chua Wen Ching
Building Security Awareness in .NET Assemblies : Part 3 of 3
by Chad Z. Hower aka Kudzu
Introduction to writing plugs in Cosmos in C#, Assembly, or X#
by venom00
In this article, we'll talk about VB6-.NET interoperation without involving COM. How? Making C-like exports of some functions from a VB.NET DLL. First, I'll introduce the technique used with a very simple sample and then it will be explained how to set a global hook just using VB (6 and .NET).
by Ziad Elmalki
Replace any method with another method at runtime. Updated for 3.5 SP1.
by jconwell
This tool analyses the IL of a list of assemblies, looking for types, methods, and fields that are not used by another list of assemblies. This lets you see if you have unused legacy code lying around that should be cleaned up.
by Software Developer's Journal
The .NET platform contains no extensions which would allow for the use of advanced aspect oriented programming. But it does contain mechanisms which makes it possible to build components which provide similar functionality. We will find out how to achieve this in this article.
by Alexandre Bencz
With this new OrangeC/C++ compiler back-end, you can compile your C code to .NET
by Dave Curylo, MCAD
How to expose legacy or third party assemblies over WCF with simple modifications to the MSIL.
by Krishna Prasad V.R.
This article focuses on the problems you might face and the probable solution when using .NET custom assemblies. This article also gives in-depth details of modifying .NET assemblies for which you do not have the source code.
by NavnathKale
Lightweight and simple
by Fady Anwar
An article demonstrating why you should not rely on obfuscation to protect your .NET applications.
by Alexandre Bencz
DotNetPELib is a library which abstracts managed information such as namespaces, classes, fields, methods, and instructions. The information can then be used to generate assembly language source files, or PE executables or DLLs.
by Piyush S Bhatnagar
This article explains how Reflection.Emit classes can be used to dynamically generate .NET assemblies.
by Kemeny Attila
Generate proxy class dynamically which implements interface
by Johannes Hansen
Dynamically sorting a list by using dynamic methods and delegates.
by Philip Liebscher
An examination of dynamic object instantiation and runtime machines to boost performance.
by Simon McEnlly
An article on editing an assembly's manifest and some other IL attributes.
by Thiago de Arruda
Shows how to extend the proxy generated by this framework by using Reflection.Emit.
by tcassisi
Generating typed field accessors and applying them to object mapping and SQL Stored Procedures
by James Nies
Reflecting on Properties is nice, but often it can be too slow. This article describes an alternative method for dynamic property access.
by Alessandro Febretti
This article describes a way to achieve fast late-bound invocation through the generation of custom MSIL code at runtime.
by Buu Nguyen
Examine the implementation, API, and performance for Fasterflect, an alternative to the .NET Reflection API.
by Ed Nutting
In this article I discuss the innovative approach, taken by FlingOS, to teaching OS and low-level development to high-level developers using C#.
by Unknown Narrator
A GetOpt implementation for .NET.
by Jonathan de Halleux, Nikolai Tillmann
Pex is a new tool that helps in understanding the behavior of .NET code, debugging issues, and in creating a test suite that covers all corner cases -- fully automatically.
by Giancarlo Aguilera
A hack that enables C# 2.0 Iterators with .NET 1.1.
by Theraot
What Microsoft didn't want you to know
by Den367
Using System.Windows.Media library to create embroidery design of a glyph from true type font file
by NineRays, Mark Sochan
Most .NET software projects can easily be tampered, exposing your software to security risks and theft of intellectual property. This article shows different techniques used to protect .NET code and determine the best protection for you. 9rays.Net offers you Spices.Obfuscator to these ends.
by icemanind
A program to compile C# code into MSIL code
by Mattias Högström
Runtime IL-Rewriting can be used to add behavior such as logging to applications, or redirect calls from one API to another. This article and accompanying source code explains how to substitute a method call at runtime.
by rcarlson-cayen, Cayen Systems
This article details how to make a legacy code base more maintainable by utilizing a JSON architecture.
by Pedro Benevides
It is important to know how things work behind the scenes in .NET.
by jconwell
Introduction to creating dynamic types with Reflection.Emit.
by jconwell
Part 2 of an introduction to creating dynamic types. This article shows how to actually generate the methods in a dynamic type and how to call them.
by Sameers Javed
Start using IL Assembly Language to debug your code at low level and understand how .NET deals with your high level code
by Sasha Goldshtein
In this article, we will look into JIT optimizations, with specific focus on inlining.
by mbarbac
A deep dive tutorial on Kerosene ORM Dynamic Records and other core concepts of the library
by mbarbac
The seventh version of the dynamic, configuration-less and self-adaptive Kerosene ORM library, that provides full real support for POCO objects, natural SQL-like syntax from C#, and advanced capabilities while being extremely easy to use.
by Jeremy Falcon
A beginner's guide to talking like a computer.
by Florian Rappl
This article introduces MAGES - a very simple, yet powerful, expression parser and interpreter.
by Richard Birkby
Demonstrates the use of Windows Forms, GDI+ from CIL
by Florian Rappl
Want to modernize your C# codebase? Let's continue with methods.
by ronnyek
Experimentation with Mono.Cecil, the IL Manipulation library
by Nathaniel Moschkin
Topics and methods on programming in .NET and performance considerations
by Alexey A. Popov
This article is dedicated to the observable property design pattern, a very nice pattern used in the Microsoft .NET Framework, a possible memory leak problem with it, and gives a couple of ways to solve it.
by Sorin Serban
This article shows how to get a readable and programmable result from the IL array provided by the MethodBody.GetILAsByteArray() method.
by Simon McEnlly
Attach performance hooks to an assembly through a command line utility.
by Eric Lynch
Extends .NET reflection to decode the byte array returned by System.Reflection.MethodBody.GetILByteArray(), discusses the techniques to achieve this, and provides a brief primer on .NET reflection.
by Adnan Aman
This is my very humble effort to reply Mr. Scott Henselman's Interview questions with great respect for him.
by Stefan Simek
RunSharp (or Run#) is a high-level wrapper around the Reflection.Emit API, allowing you to generate code at runtime quickly and easily.
by wmjordan
Circumventing language obstacles and optimizing performance with Dynamic Methods, Dynamic Assemblies.
by Addison-Wesley
An introduction to .NET.
by Florian Rappl
A close look at some powerful features of C# that are less known but sometimes come in very handy
by Dennis C. Dietrich
Clarifying how the .NET GC identifies objects to collect once and for all... hopefully...
by Emilio Reale
Exporting methods for the .NET class inside VB6 or unmanaged C++.
by Fatih KIHTIR
Modifying CAPICOM Runtime Callable Wrapper (RCW) generated by TlbImp.exe to enable CAPICOM to process digital signatures with UTF8/ASCII content (mostly signed by Java).
by Steve Marsh
The classes in this project allow you to parse text expressions entered by a user and compile them to a .NET assembly. This assembly can be executed on the fly, or saved to a DLL.
by Mainak Saha
An article on using the __cdecl callback from C#, changing compiler service.
by Giancarlo Aguilera
A discussion of some differences between VB and C# MSIL code.
by Vikas Sharma
In this article we will make a Visual Studio extension(Visual Studio VSIX Package) that would notify us for our emails in VisualStudio Status bar
by Chad Z. Hower aka Kudzu
Several users have written to me requesting information on the new Cosmos X86 assembly level debugger. Because of the great interest I have written this short preview article.
by ediazc
Describes how to generate a WebForm using reflection from a class.