日期:2014-05-16  浏览次数:20738 次

C# 程序集 和 反射

.Net反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为.Net的反射机制。

.Net反射机制主要提供了以下功能:

a.在程序运行时:动态 获取加载程序集; 动态获取类型(如类、接口等); 动态获取类型的成员信息(如方法,字段,属性等);

b.在运行时,动态创建(主要根据类名 或成员名 字符串动态创建类型实例,以及 调用和 访问 这些 实例 成员;


1.反射-Assembly 程序集对象    using System.Reflection;

    Assembly 表示 某个程序集( .dll/exe )

    获取程序集的方式:

       获得当前程序域中 所有的AssemblyAppDomain.CurrentDomain.GetAssemblies()

       获取当前 对象所在的Assemblythis.GetType().Assembly

       根据路径加载AssemblyAssembly.LoadFrom(assPath)

2.反射- Type 类型对象

    Type类,程序运行时一个class对应一个Type类的对象。通过Type对象可以获得类的所有的定义信息,比如类有哪些属性、哪些方法等。

     获得Type对象的方式:  1,2为获得单个类型对象,3,4,5 通过程序集获取Type

        1.通过类 获得对应TypeTypet =typeof(Person)

        2.通过对象获得 TypeTypet =p.GetType()

        3.根据类的全名称获取程序集中定义的类:Type  type=Assembly.