反射发出抽象化

更新:2007 年 11 月

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

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

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

抽象

说明

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 类继承。类型描述值。类型定义类型值所支持的允许值和允许操作。类型成员可以是类型、方法、字段、属性或事件。

请参见

其他资源

发出动态方法和程序集

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