What is reflection and how to use it in CSharp ?

/*

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.

What is reflection and how to use it in CSharp ?_第1张图片

And then I've created a new class named "RunBasicReflection" to get all the information I need.

What is reflection and how to use it in CSharp ?_第2张图片


Then, I get the type information using method "GetTypeInformation".

What is reflection and how to use it in CSharp ?_第3张图片

Within the same "main" method, I'll create an instance of type "BasicReflection" and invoke the method "Calculation".

What is reflection and how to use it in CSharp ?_第4张图片

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

你可能感兴趣的:(C#,reflection)