一、反射理解
1.1 反射的说明
反射指程序可以访问、检测和修改它本身状态或行为的一种能力。理解:访问、检查可以根据声波、光波、地震波等波的反射去理解;如蝙蝠声波测距离。对于它本身状态或行为能力,有些绕,可以理解为蝙蝠本身。
对于程序而言它包含:1、程序或类库中每一个类型的描述;2、清单信息,包括与程序本身有关的数据,以及它依赖的库;3、在代码中嵌入的自定义特性,提供与特性所修饰的构造有关的额外信息。
程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。
您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。
1.2 反射的用途
- 它允许在运行时查看特性(attribute)信息。
- 它允许审查集合中的各种类型,以及实例化这些类型。
- 它允许延迟绑定的方法和属性(property)。
- 它允许在运行时创建新类型,然后使用这些类型执行一些任务。
二、反射的主要内容
2.1 使用的命名空间
使用反射需要引用命名空间【using System.reflection】
2.2 如何使用反射
如何:使用反射检查和实例化泛型类型
如何:将程序集加载到仅反射上下文中
如何:使用反射获取类型和成员信息