Process of runtime type discovery is called reflection. Using reflection we are able to obtain the metadata information, dynamically. For example we can get list of all types contained within a given assembly, including methods, attributes, fields, custom attributes, properties and many more.
Before dive into reflection, first have a look at System.Type class. Because it is a base foundation of reflection api.