Поделиться через


MethodBodyStreamEncoder.AddMethodBody Метод

Определение

Перегрузки

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)

Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
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)

Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
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

true, если метод выделяет из пула динамической локальной памяти (IL содержит инструкцию localloc); в противном случае false.

Возвращаемое значение

Смещение закодированного тела в потоке тела метода.

Исключения

instructionEncoder имеет значение по умолчанию.

maxStack находится вне диапазона [0, UInt16.MaxValue].

Метка, на которую ссылается ветвь в потоке инструкций, не помечена или расстояние между инструкцией ветвления и целевой меткой не соответствует размеру операнда инструкции.

Применяется к

AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes)

Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
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)

Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
MethodBodyStreamEncoder.cs
Исходный код:
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

true, если метод выделяет из пула динамической локальной памяти (инструкция localloc); в противном случае false.

Возвращаемое значение

Смещение закодированного тела в потоке тела метода.

Исключения

codeSize, exceptionRegionCount или maxStack находятся за пределами допустимого диапазона.

Применяется к