1、反射是System.Reflection命名空间,是微软提供的一个帮助类库。
优点:动态,减少依赖,可破坏单例,是普通方法无法做到的。缺点:代码量比较大,容易出错,有较大的性能损失。
2、反射有这么几个使用步骤 :1)动态加载dll ;2)获取类型;3)创建实例;4)使用实例
3、关于反射获取方法,并使用方法
获取类型之后,可以type.GetMethod()获取方法,并使用。例子如截图
4、调用泛型方法:需要使用MakeGenericMethod指定泛型方法的类型,然后才能Invoke调用
5、注意,当反射调用泛型类中泛型方法时,我们在获取泛型类型时候,要使用占位符。注意看一下红框标注的。(因为泛型的类型参数实际上就是一个占位符)
6、可以根据类型获取类型里面的属性type.GetProperties(),也可根据类型获取类型里面的字段type.GetFields()
并通过getValue和setValue两个方法进行获取值和赋值。