I am writing this blog because, Reflection provides higher level abstraction, actually using reflection we can examine the object and handle that object at run time as per our requirement.
For example, just before some time using reflection i am searching parent of the current object, and used that information for error logging purpose.
objMethodBase = system.reflection.methodbase;
This line will return you, parent class of current object.
So we can say, using reflection can minimize maintenance as the same code.