ILGenerator 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
生成 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 用于为动态程序集中的方法和构造函数生成方法主体, (由 MethodBuilder 和 ConstructorBuilder 类) 表示,以及 (类表示的独立动态方法 DynamicMethod) 。 若要获取 ILGenerator,请使用 ConstructorBuilder.GetILGenerator、 DynamicMethod.GetILGenerator和 MethodBuilder.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[]) |
将 |
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) |
提供对某一对象公开的属性和方法的访问。 |
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈