Cecil is a library to inspect, modify and create .NET programs and libraries. Mono.Cecil is a library to generate and inspect programs and libraries in the ECMA CIL form. Analyze .NET binaries using a simple and powerful object model, without having to load assemblies to use Reflection. Modify .NET binaries, add new metadata structures and alter the IL code. Cecil has been around since 2004 and is widely used in the .NET community. If you're using Cecil, or depend on a framework, project, or product using it, please consider sponsoring Cecil. Cecil 0.10 beta 5 addresses a long standing issue: previously, a rewrite of native pdb files would lose some debugging information, including the list of namespaces that were used in methods (and thus breaking the expression evaluation) or the scopes in generators (for iterators or async methods).
Features
- The beta 5 adds support for the embedded portable pdb format that shipped with Visual Studio 2017
- Reduction of allocations when reading assemblies with many nested types
- Small method bodies are now cached and written only once
- Cecil would try to find the file associated with the platform, and throw if it didn’t find one
- Cecil is now deterministic
- Cecil now optimizes how strings are stored in the assembly