-> is the ability of a managed code to read its own metadata for the purpose of finding assemblies, modules and type information at runtime.
-> Reflection inspects type metadata at runtime.
-> The type metadata contains information such as
– The type name
– The containing assembly
-> This data can be used to create instances, access values and execute methods dynamically at runtime.
-> There are two ways to dynamically instantiate a type.
– Calling Invoke on a ConstructorInfo object (advanced scenarios)