---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
反射!神奇!总结如下:
通过反射,可以在运行时动态调用程序集,动态获得.net中的每个类型,如类、结构、接口、委托等,并可以获取该类型的成员,如方法、属性、以及构造函数等,同时还可以获得相关成员的属性,并且可以使用反射动态地创建类型的实例,将类型绑定到现有对象或从现有对象中获取类型,然后调用类型的方法或访问其字段和属性。
下面是我总结的Assembly(程序集)与Type类:
Assembly(程序集):使用Assembly定义和加载程序集,以及从此程序集中查找类型并创建该类型的实例。
Assembly类有以下几个常用的方法:
LoadFile()方法:动态从文件加载Assembly,这样就不需要在编译的时候引用。
GetExportedTypes()方法:可以得到Assembly中定义的所有的public类型。
GetTypes()方法:可以得到Assembly中定义的所有的类型。
GetType(name)方法:可以得到Assembly中定义的全名为name的类型信息。
Type:Type类可以看成是类的抽象,一个类型对应着一个Type类的对象,通过Type对象可以类的所有定义信息。获取Type对象的方法,除了刚才提到的Assembly类中的方法还可以用以下两种方法:
通过类获得Type:Type t = typeof(类型)
通过对象获得类的Type:Type t =类型对象.GetType()
这两种方法的区别是,一个是通过类型来获取Type对象,另一个则是通过类型的对象获取Type对象。Type类的几个常用方法总结:
GetProperty()方法:调用该方法可以根据属性名获得属性对象PropertyInfo
GetMethod()方法:该方法可以根据方法名获取方法对象,调用MethodBase的Invoke方法就可以调用方法
Type类还有很多方法,这里不一一总结,具体使用再查相关资料
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------