The .NET runtime depends
heavily
on the existence of metadata and the ability to inspect and
manipulate it dynamically. The FCL exposes this via a set of abstract
classes that mirror the significant elements of an application
(assemblies, modules, types, and members) and provide support for
creating instances of FCL types and new types on the fly (see Chapter 13).
For more information, see the following namespaces:
System.Reflection
System.Reflection.Emit
Important related types in other namespaces include
System.Type, System.Activator,
and System.AppDomain.