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
находятся за пределами допустимого диапазона.