反射
更新:2007 年 11 月
通过 System.Reflection 命名空间中的类以及 System.Type,您可以获取有关已加载的程序集和在其中定义的类型(如类、接口和值类型)的信息。您也可以使用反射在运行时创建类型实例,以及调用和访问这些实例。
本节内容
反射概述
解释反射及其主要用途。如何:将程序集加载到仅反射上下文中
介绍只反射加载上下文。演示如何加载程序集、如何测试上下文以及如何检查应用于只反射上下文中的程序集的属性。反射中的运行库类型
描述内部类型(如 RuntimeType),这些类型继承 System.Reflection 命名空间中的抽象类并提供了这些抽象类的大部分实现。查看类型信息
描述 System.Type 类并提供代码示例,这些代码示例将说明如何使用 System.Type 和若干反射类来获取有关构造函数、方法、字段、属性和事件的信息。反射类型和泛型类型
说明反射如何处理泛型类型和泛型方法的类型参数和类型变量。反射类所使用的设计模式
提供一个表,说明方法命名模式和最常用的反射类(如 Module、Type 和 MemberInfo 类)的用法。反射的安全注意事项
描述用于确定反射是否适合用于了解类型信息和访问类型的规则。动态加载和使用类型
描述支持后期绑定的反射自定义绑定接口。访问默认成员
说明如何使用反射来访问类可能具有的默认成员。访问默认参数值
说明如何使用反射来访问具有默认值的参数以及如何调用包含具有默认值的参数的方法。访问自定义属性
说明如何使用反射来查询属性是否存在以及属性值。指定完全限定的类型名称
按照巴科斯范氏 (Backus-Naur form) (BNF) 来描述完全限定类型名称的格式,并描述在指定特殊字符、程序集名称、指针、引用和数组时所需的语法。非托管反射 API
介绍在哪里可以找到有关使用非托管反射来检查元数据的信息。如何:使用反射将委托挂钩
说明如何为方法创建委托,并将委托挂钩到事件。说明如何使用 DynamicMethod 在运行时创建事件处理方法。
参考
Type
表示运行时类型系统中的类型并提供反射的核心功能的类。System.Reflection
包含代码实体的其他抽象(如表示方法的 MethodInfo 类)的命名空间。System.Reflection.Emit
包含用于生成动态程序集和动态方法的类的命名空间。
相关章节
- 发出动态方法和程序集
说明如何生成动态程序集和动态方法。