DynamicILInfo 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供对多种用来为动态方法生成 Microsoft 中间语言 (MSIL) 和元数据的其他方式的支持,包括用来创建标记和插入代码的方法、异常处理,以及局部变量签名 Blob。
public ref class DynamicILInfo sealed
public ref class DynamicILInfo
public sealed class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
type DynamicILInfo = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
Public NotInheritable Class DynamicILInfo
Public Class DynamicILInfo
- 继承
-
DynamicILInfo
- 属性
注解
类 DynamicILInfo 允许开发人员编写自己的 MSIL 生成器,而不是使用 ILGenerator。
若要创建其他类型的实例、调用方法等,生成的 MSIL 必须包含这些实体的令牌。 类 DynamicILInfo 提供 方法的 GetTokenFor 多个重载,这些重载返回当前 DynamicILInfo范围内有效的令牌。 例如,如果需要调用 方法的 Console.WriteLine 重载,则可以获取 RuntimeMethodHandle 该重载的 ,并将其 GetTokenFor 传递给 方法以获取要嵌入 MSIL 中的令牌。
为本地变量签名、异常和代码正文创建Byte数组后,可以使用 SetCode、 SetExceptions和 SetLocalSignature 方法将它们插入到与对象关联的 DynamicILInfo 中DynamicMethod。
生成自己的元数据和 MSIL 需要熟悉公共语言基础结构 (CLI) 文档,特别是“分区 II:元数据定义和语义”和“分区 III:CIL 指令集”。 有关详细信息,请参阅 ECMA 335 公共语言基础结构 (CLI) 。
注意
请勿使用 DynamicILInfo 生成通过直接调用委托构造函数来创建另一个动态方法的委托的代码。 请改用 CreateDelegate 方法创建委托。 使用委托构造函数创建的委托没有对目标动态方法的引用。 当委托仍在使用时,垃圾回收可能会回收动态方法。
属性
DynamicMethod |
获取动态方法,该方法的方法体由当前实例生成。 |