What Does Reflection Mean?
Reflection is the process of accessing information about loaded assemblies and the types defined therein to create, invoke and access type instances at run time programmatically.
Reflection makes it possible to view the assembly information of an object such as events, properties, methods and fields. It forms a mechanism by which objects can interrogate each other and discover information at run time, which includes more than what is known through publicly exposed interfaces. Reflection helps to define modules and new types invoked during run time. Reflection is used in applications such as type browsers (for selecting and viewing the information about types), compilers (to construct symbol tables), and remoting and serializing applications (for accessing data and its persistence).