Reflection provides objects (of type Type) that describe assemblies, modules and types. Reflection objects are used for obtaining type information at runtime. The classes that give access to the metadata of a running program are in the System.Reflection namespace, which allow you to obtain information about the application and to dynamically add types, values, and objects to the application.