Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Reflection involves traversing and manipulating an object model that represents an application, including all its compile-time and runtime elements. Consequently, it is important to understand the various logical units of a .NET application and their roles and relationships.
The fundamental units of an application are its types, which contain members and nested types. Types are contained in modules, which are composed into assemblies. All these elements are described with metadata. Metadata is generally produced by the compiler at compile time, although it may also be created on the fly via Reflection.Emit (which is described in Section 13.8).