反射发出抽象化

反射发出抽象化与常规类型系统密切对应,而该系统是公共语言运行时的基础。

程序集是一组配置的可加载代码模块和其他资源,它们共同实现功能单元。 程序集所具有的名称构成了常规类型系统命名层次结构的基础。

本主题将程序集分为静态程序集或动态程序集。 静态程序集是从磁盘加载的程序集。 动态程序集是用反射发出创建的程序集。 下表按字母顺序显示反射发出使用的抽象化。

抽象

说明

AssemblyBuilder

定义并表示动态程序集的类。 从 Assembly 类继承。

ConstructorBuilder

定义并表示构造函数的类,它描述了创建类型实例的操作。 从 ConstructorInfo 类继承。

CustomAttributeBuilder

帮助定义自定义特性的类。

DynamicMethod

定义可使用委托执行的全局方法的类。

EnumBuilder

帮助定义并表示枚举类型的类。 从 Type 类继承。

EventBuilder

用于定义并表示事件的类。 从 EventInfo 类继承。 对象类型的事件指定已命名的状态转换,在该转换中订户可以使用访问器方法注册或取消注册感兴趣的内容。

FieldBuilder

用于定义并表示字段的类。 从 FieldInfo 类继承。 字段是值的命名部分。 类型可以有字段成员。 模块或类型也可以引用可迁移可执行 (PE) 文件的 .sdata 节中定义的字段。

ILGenerator

用于定义和表示 Microsoft 中间语言 (MSIL) 的类。 实时运行时编译器将 MSIL 中的说明翻译为本机代码。

Label

一个类,它是 ILGenerator 类所使用的标签的不透明表示形式。 标签对应于 MSIL 代码中的特定位置。

LocalBuilder

一个类,表示在方法体内声明的局部变量。

MethodBuilder

用于定义并表示方法的类。 从 MethodInfo 类继承。 方法描述可以对类型值执行的操作。

ModuleBuilder

用于定义并表示模块的类。 从 Module 类继承。

模块是编译单元或开发单元。 使用反射发出 API 创建的模块在创建模块的运行期间称为动态模块。 如果该模块被保存到磁盘然后从磁盘加载,则“动态模块”一词不适用。 可以作为 PE 文件保存到磁盘的动态模块称为持久动态模块。 仅存在于内存中的动态模块称为瞬态动态模块。

ParameterBuilder

用于定义并表示参数的类。 从 ParameterInfo 类继承。 参数是表示方法或构造函数的参数的位置。

PropertyBuilder

用于定义并表示属性的类。 从 PropertyInfo 类继承。 对象类型的属性指定命名值,通过读取和写入值的访问器方法可以访问这些值。

TypeBuilder

用于定义并表示类型的类。 从 Type 类继承。 类型描述值。 类型定义类型值所支持的允许值和允许操作。 类型成员可以是类型、方法、字段、属性或事件。

请参见

概念

公共语言运行时中的程序集

其他资源

发出动态方法和程序集