This library was developed used internally at Microsoft some years ago to support some internal projects. This provides a set of services similar to our own Cecil library. Despite this, it is nice to see Microsoft open source more code.
Cecil, in addition to the low-level APIs for reading and writing ECMA CIL files has a few niceties layered on top of it like a Flowanalysis engine (it is used to decompile byte codes into ASTs) and a full fledged decompiler.
Additionally, Marek is currently replacing the backend in
our C# compiler to move away
System.Reflection.Emit into using Cecil so
that we can bring our C# REPL to Windows developers.
Mono's C# REPL currently works in a very limited mode in
.NET (no generics, no LINQ) because
System.Reflection has several limitations
for building full-fleged compilers. To work around this issue
Mono has over the years extended the Reflection stack to
provide the features that were missing. We were never quite
happy with this and we are now dropping it in exchange for
JB, the creator of Cecil shares with us his take on Cecil and the CCI.