Reflection is the process in which we are accessing the information of assemblies and types defined, access type and data member values from class object instances at run time. In programming we can use Reflection to view the assembly information of an object such as events, properties, methods and fields. It mechanism in which all the project objects can interrogate with each other and discover information at run time. Reflection helps to define modules and new types invoked during run time and it is used in applications such as type browsers for selecting and viewing the information about types , compilers to construct symbol tables, and remote applications and serializing applications for accessing data and its persistence.