MethodBodyStreamEncoder.AddMethodBody 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes) |
对方法主体进行编码,并将其添加到方法主体流中。 |
AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes, Boolean) |
通过使用提供的指令编码器、最大堆栈大小、局部变量的签名句柄、方法主体属性并允许指示该方法是否应从动态本地内存池分配,对方法主体进行编码,并将其添加到方法主体流。 |
AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes) |
通过使用提供的代码大小、最大堆栈大小、异常区域的数目、局部变量的签名句柄、方法主体属性并允许指示是否应以小格式编码异常区域,对方法主体进行编码,并将其添加到方法主体流。 |
AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes, Boolean) |
通过使用提供的代码大小、最大堆栈大小、异常区域的数目、局部变量的签名句柄、方法主体属性,允许指示是否应以小格式编码异常区域,并允许指示方法是否应从动态本地内存池分配,对方法主体进行编码,并将其添加到方法主体流。 |
AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes)
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
对方法主体进行编码,并将其添加到方法主体流中。
public:
int AddMethodBody(System::Reflection::Metadata::Ecma335::InstructionEncoder instructionEncoder, int maxStack, System::Reflection::Metadata::StandaloneSignatureHandle localVariablesSignature, System::Reflection::Metadata::Ecma335::MethodBodyAttributes attributes);
public int AddMethodBody (System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes);
public int AddMethodBody (System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack = 8, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals);
member this.AddMethodBody : System.Reflection.Metadata.Ecma335.InstructionEncoder * int * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes -> int
Public Function AddMethodBody (instructionEncoder As InstructionEncoder, maxStack As Integer, localVariablesSignature As StandaloneSignatureHandle, attributes As MethodBodyAttributes) As Integer
Public Function AddMethodBody (instructionEncoder As InstructionEncoder, Optional maxStack As Integer = 8, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals) As Integer
参数
- instructionEncoder
- InstructionEncoder
指令编码器。
- maxStack
- Int32
最大堆栈大小。
- localVariablesSignature
- StandaloneSignatureHandle
局部变量的签名句柄。
- attributes
- MethodBodyAttributes
方法主体属性。
返回
已编码主体在方法主体流中的偏移量。
例外
instructionEncoder
具有默认值。
maxStack
已超过 [0, UInt16.MaxValue] 范围。
指令流中分支的目标标签尚未标记,或者分支指令与目标标签之间的距离不符合指令操作数的大小。
适用于
AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes, Boolean)
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
通过使用提供的指令编码器、最大堆栈大小、局部变量的签名句柄、方法主体属性并允许指示该方法是否应从动态本地内存池分配,对方法主体进行编码,并将其添加到方法主体流。
public int AddMethodBody (System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack = 8, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, bool hasDynamicStackAllocation = false);
member this.AddMethodBody : System.Reflection.Metadata.Ecma335.InstructionEncoder * int * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes * bool -> int
Public Function AddMethodBody (instructionEncoder As InstructionEncoder, Optional maxStack As Integer = 8, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, Optional hasDynamicStackAllocation As Boolean = false) As Integer
参数
- instructionEncoder
- InstructionEncoder
指令编码器。
- maxStack
- Int32
最大堆栈大小。
- localVariablesSignature
- StandaloneSignatureHandle
局部变量的签名句柄。
- attributes
- MethodBodyAttributes
方法主体属性。
- hasDynamicStackAllocation
- Boolean
如果方法从动态本地内存池分配(IL 包含 localloc
指令),则为 true
;否则为 false
。
返回
已编码主体在方法主体流中的偏移量。
例外
instructionEncoder
具有默认值。
maxStack
已超过 [0, UInt16.MaxValue] 范围。
指令流中分支的目标标签尚未标记,或者分支指令与目标标签之间的距离不符合指令操作数的大小。
适用于
AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes)
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
通过使用提供的代码大小、最大堆栈大小、异常区域的数目、局部变量的签名句柄、方法主体属性并允许指示是否应以小格式编码异常区域,对方法主体进行编码,并将其添加到方法主体流。
public:
System::Reflection::Metadata::Ecma335::MethodBodyStreamEncoder::MethodBody AddMethodBody(int codeSize, int maxStack, int exceptionRegionCount, bool hasSmallExceptionRegions, System::Reflection::Metadata::StandaloneSignatureHandle localVariablesSignature, System::Reflection::Metadata::Ecma335::MethodBodyAttributes attributes);
public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody (int codeSize, int maxStack, int exceptionRegionCount, bool hasSmallExceptionRegions, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes);
public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody (int codeSize, int maxStack = 8, int exceptionRegionCount = 0, bool hasSmallExceptionRegions = true, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals);
member this.AddMethodBody : int * int * int * bool * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes -> System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody
Public Function AddMethodBody (codeSize As Integer, maxStack As Integer, exceptionRegionCount As Integer, hasSmallExceptionRegions As Boolean, localVariablesSignature As StandaloneSignatureHandle, attributes As MethodBodyAttributes) As MethodBodyStreamEncoder.MethodBody
Public Function AddMethodBody (codeSize As Integer, Optional maxStack As Integer = 8, Optional exceptionRegionCount As Integer = 0, Optional hasSmallExceptionRegions As Boolean = true, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals) As MethodBodyStreamEncoder.MethodBody
参数
- codeSize
- Int32
要为指令保留的字节数。
- maxStack
- Int32
最大堆栈大小。
- exceptionRegionCount
- Int32
异常区域的数目。
- hasSmallExceptionRegions
- Boolean
如果应以小格式编码异常区域,则为 true
;否则为 false
。
- localVariablesSignature
- StandaloneSignatureHandle
局部变量的签名句柄。
- attributes
- MethodBodyAttributes
方法主体属性。
返回
已编码主体在方法主体流中的偏移量。
例外
codeSize
、 exceptionRegionCount
或 maxStack
已超过允许的范围。
适用于
AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes, Boolean)
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
- Source:
- MethodBodyStreamEncoder.cs
通过使用提供的代码大小、最大堆栈大小、异常区域的数目、局部变量的签名句柄、方法主体属性,允许指示是否应以小格式编码异常区域,并允许指示方法是否应从动态本地内存池分配,对方法主体进行编码,并将其添加到方法主体流。
public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody (int codeSize, int maxStack = 8, int exceptionRegionCount = 0, bool hasSmallExceptionRegions = true, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, bool hasDynamicStackAllocation = false);
member this.AddMethodBody : int * int * int * bool * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes * bool -> System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody
Public Function AddMethodBody (codeSize As Integer, Optional maxStack As Integer = 8, Optional exceptionRegionCount As Integer = 0, Optional hasSmallExceptionRegions As Boolean = true, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, Optional hasDynamicStackAllocation As Boolean = false) As MethodBodyStreamEncoder.MethodBody
参数
- codeSize
- Int32
要为指令保留的字节数。
- maxStack
- Int32
最大堆栈大小。
- exceptionRegionCount
- Int32
异常区域的数目。
- hasSmallExceptionRegions
- Boolean
如果应以小格式编码异常区域,则为 true
;否则为 false
。
- localVariablesSignature
- StandaloneSignatureHandle
局部变量的签名句柄。
- attributes
- MethodBodyAttributes
方法主体属性。
- hasDynamicStackAllocation
- Boolean
如果方法从动态本地内存池分配(localloc
指令),则为 true
;否则为 false
。
返回
已编码主体在方法主体流中的偏移量。
例外
codeSize
、 exceptionRegionCount
或 maxStack
已超过允许的范围。