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)

开始捕获块。

BeginExceptFilterBlock()

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

BeginExceptionBlock()

为未筛选的异常开始异常块。

BeginFaultBlock()

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

BeginFinallyBlock()

开始Microsoft中间语言(MSIL)指令流中的最后块。

BeginScope()

开始词法范围。

CreateLabel(Int32)

创建具有给定 ID 的 Label

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)流中标记序列点。

MarkSequencePointCore(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)

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

适用于