/*
Author: Jiangong SUN
*/
Last update: 15/07/2013
Reflection provides objects (of type Type) that encapsulate assemblies, modules and types. You can use reflection to dynamically create an instance of a type, bind the type to an existing object, or get the type from an existing object and invoke its methods or access its fields and properties. If you are using attributes in your code, Reflection enables you to access them.
With reflection, you can inspect the meta data.
Here I want to demonstrate how to get a class' assembly, module, method and attributes information.
Firstly, I've created a class with fields, attributes, method and properties.
And then I've created a new class named "RunBasicReflection" to get all the information I need.
Then, I get the type information using method "GetTypeInformation".
Within the same "main" method, I'll create an instance of type "BasicReflection" and invoke the method "Calculation".
And then, I'll get the type's assembly information.
First, call method "GetAssemblyInformation"
The content of method "GetAssemblyInformation"
And then, I'll get the information about module, method, attributes etc.
I've spent some time to clarify all this information about reflection. I hope this post can do help in your daily work! Enjoy coding!
references:
http://stackoverflow.com/questions/2712629/what-is-reflection-in-c-where-do-we-use-this-concept-in-our-application
http://www.codeproject.com/Articles/38870/Examining-an-Assembly-at-Runtime
http://stackoverflow.com/questions/4646786/dynamic-lang-runtime-vs-reflection