Cecil is a library written by Jb Evain (http://evain.net/blog/)
to generate and inspect programs and libraries in the ECMA CIL format.
It has full support for generics, and support some debugging symbol
format.
In simple English, with Cecil, you can load existing managed
assemblies, browse all the contained types, modify them on the fly and
save back to the disk the modified assembly.
Today it is used by the Mono Debugger, the bug-finding and compliance checking tool Gendarme, MoMA, as well as DB4O