ILGenerator 类

定义

生成 Microsoft 中间语言 (MSIL) 指令。

public ref class ILGenerator
public ref class ILGenerator abstract
public ref class ILGenerator : System::Runtime::InteropServices::_ILGenerator
public class ILGenerator
public abstract class ILGenerator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public class ILGenerator : System.Runtime.InteropServices._ILGenerator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public class ILGenerator : System.Runtime.InteropServices._ILGenerator
type ILGenerator = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type ILGenerator = class
    interface _ILGenerator
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ILGenerator = class
    interface _ILGenerator
Public Class ILGenerator
Public MustInherit Class ILGenerator
Public Class ILGenerator
Implements _ILGenerator
继承
ILGenerator
属性
实现

注解

ILGenerator 用于为动态程序集中的方法和构造函数生成方法主体, (由 MethodBuilderConstructorBuilder 类) 表示,以及 (类表示的独立动态方法 DynamicMethod) 。 若要获取 ILGenerator,请使用 ConstructorBuilder.GetILGeneratorDynamicMethod.GetILGeneratorMethodBuilder.GetILGenerator 方法。

MSIL 用作实时 (JIT) 编译器的输入。

构造函数

ILGenerator()

初始化 ILGenerator 类的新实例。

属性

ILOffset

获取由 ILGenerator 发出的 Microsoft 中间语言 (MSIL) 流中的当前偏移量(以字节为单位)。

方法

BeginCatchBlock(Type)

开始 Catch 块。

BeginExceptFilterBlock()

开始已筛选异常的异常块。

BeginExceptionBlock()

开始非筛选异常的异常块。

BeginFaultBlock()

在 Microsoft 中间语言 (MSIL) 流中开始一个异常错误块。

BeginFinallyBlock()

在 Microsoft 中间语言 (MSIL) 指令流中开始一个 Finally 块。

BeginScope()

开始词法范围。

CreateLabel(Int32)

生成 Microsoft 中间语言 (MSIL) 指令。

DeclareLocal(Type)

声明指定类型的局部变量。

DeclareLocal(Type, Boolean)

声明指定类型的局部变量,还可以选择固定该变量所引用的对象。

DefineLabel()

声明新标签。

Emit(OpCode)

将指定的指令放到指令流上。

Emit(OpCode, Byte)

将指定的指令和字符参数放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, ConstructorInfo)

将指定构造函数的指定指令和元数据令牌放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, Double)

将指定的指令和数值参数放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, FieldInfo)

将指定字段的指定指令和元数据令牌放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, Int16)

将指定的指令和数值参数放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, Int32)

将指定的指令和数值参数放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, Int64)

将指定的指令和数值参数放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, Label)

将指定的指令放到 Microsoft 中间语言 (MSIL) 流上,并留出在完成修正时加上标签所需的空白。

Emit(OpCode, Label[])

将指定的指令放到 Microsoft 中间语言 (MSIL) 流上,并留出在完成修正时加上标签所需的空白。

Emit(OpCode, LocalBuilder)

将指定的指令放到 Microsoft 中间语言 (MSIL) 流上,后跟给定局部变量的索引。

Emit(OpCode, MethodInfo)

将指定的指令放到 Microsoft 中间语言 (MSIL) 流上,后跟给定方法的元数据令牌。

Emit(OpCode, SByte)

将指定的指令和字符参数放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, SignatureHelper)

将指定的指令和签名令牌放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, Single)

将指定的指令和数值参数放到 Microsoft 中间语言 (MSIL) 指令流上。

Emit(OpCode, String)

将指定的指令放到 Microsoft 中间语言 (MSIL) 流上,后跟给定字符串的元数据令牌。

Emit(OpCode, Type)

将指定的指令放到 Microsoft 中间语言 (MSIL) 流上,后跟给定类型的元数据令牌。

EmitCall(OpCode, MethodInfo, Type[])

callcallvirt 指令置于 Microsoft 中间语言 (MSIL) 流,以调用 varargs 方法。

EmitCalli(OpCode, CallingConvention, Type, Type[])

Calli 指令放到 Microsoft 中间语言 (MSIL) 流,并指定间接调用的非托管调用约定。

EmitCalli(OpCode, CallingConventions, Type, Type[], Type[])

Calli 指令放到 Microsoft 中间语言 (MSIL) 流,并指定间接调用的托管调用约定。

EmitWriteLine(FieldInfo)

发出用给定字段调用 WriteLine 所需的 Microsoft 中间语言 (MSIL)。

EmitWriteLine(LocalBuilder)

发出使用给定本地变量调用 WriteLine 时必需的 Microsoft 中间语言 (MSIL)。

EmitWriteLine(String)

发出 Microsoft 中间语言 (MSIL) 以用字符串调用 WriteLine

EndExceptionBlock()

结束异常块。

EndScope()

结束词法范围。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MarkLabel(Label)

用给定标签标记 Microsoft 中间语言 (MSIL) 流的当前位置。

MarkSequencePoint(ISymbolDocumentWriter, Int32, Int32, Int32, Int32)

在 Microsoft 中间语言 (MSIL) 流中标记序列点。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ThrowException(Type)

发出指令以引发异常。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
UsingNamespace(String)

指定用于计算当前活动词法范围的局部变量和监视值的命名空间。

显式接口实现

_ILGenerator.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

将一组名称映射为对应的一组调度标识符。

_ILGenerator.GetTypeInfo(UInt32, UInt32, IntPtr)

检索对象的类型信息,然后可以使用该信息获取接口的类型信息。

_ILGenerator.GetTypeInfoCount(UInt32)

检索对象提供的类型信息接口的数量(0 或 1)。

_ILGenerator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供对某一对象公开的属性和方法的访问。

适用于