This namespace contains a meta data model of the CLR. Parts of it are quite similar to the standard reflection library, but it goes further in many ways:
- It describes the type system from the point of view of the execution engine, which includes explicit box types and information about memory layouts
- It decodes the instruction stream, and provides a sequence of instructions as well as a basic-block representation
- It decodes signature blobs
- It can perform operations which are normally hidden by the execution engine, e.g. vtable-lookups
- It includes facilities to create types which can be used to instantiate generic types whose type parameters have constraints
- It aggressively caches data, and works around some quirks in the standard reflection implementation
- In the following, the core concepts of the library are presented in more detail.
In order to reflect over instruction sequences, it also contains the concepts: