DynamicILInfo Класс

Определение

Предоставляет поддержку альтернативных способов создания Microsoft промежуточного языка (MSIL) и метаданных для динамического метода, включая методы создания маркеров и вставки кода, обработки исключений и больших двоичных объектов сигнатур локальной переменной.

public ref class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
type DynamicILInfo = class
Public Class DynamicILInfo
Наследование
DynamicILInfo
Атрибуты

Комментарии

Класс DynamicILInfo позволяет разработчикам создавать собственные генераторы MSIL вместо использования ILGenerator.

Чтобы создать экземпляры других типов, методы вызова и т. д., создаваемый MSIL должен содержать маркеры для этих сущностей. Класс DynamicILInfo предоставляет несколько перегрузок метода GetTokenFor, которые возвращают маркеры, действительные в области текущего DynamicILInfo. Например, если необходимо вызвать перегрузку Console.WriteLine метода, можно получить RuntimeMethodHandle для этой перегрузки и передать его GetTokenFor методу, чтобы получить маркер для внедрения в MSIL.

После создания Byte массивов для локальной сигнатуры, исключений и текста кода можно использовать SetCodeSetExceptionsметоды и SetLocalSignature методы для их вставки в связанный DynamicMethod с DynamicILInfo ним объект.

Для создания собственных метаданных и MSIL требуется знакомство с документацией по инфраструктуре общего языка (CLI), особенно "Секция II: определение метаданных и семантика" и "Набор инструкций Partition III: CIL". Дополнительные сведения см. в статье ECMA 335 Common Language Infrastructure (CLI).

Note

Не используйте DynamicILInfo для создания кода, который создает делегат для другого динамического метода путем вызова конструктора делегата напрямую. Вместо этого используйте CreateDelegate метод для создания делегата. Делегат, созданный с помощью конструктора делегата, не имеет ссылки на целевой динамический метод. Динамический метод может быть восстановлен сборкой мусора, пока делегат по-прежнему используется.

Свойства

Имя Описание
DynamicMethod

Получает динамический метод, тело которого создается текущим экземпляром.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetTokenFor(Byte[])

Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего сигнатуру для связанного динамического метода.

GetTokenFor(DynamicMethod)

Возвращает маркер, допустимый в области текущего DynamicILInfo, представляющего динамический метод, вызываемого из связанного метода.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Возвращает маркер, допустимый в области текущего DynamicILInfo, представляющего поле для доступа из связанного динамического метода; поле находится в указанном универсальном типе.

GetTokenFor(RuntimeFieldHandle)

Возвращает маркер, допустимый в области текущего DynamicILInfoполя, представляющего поле для доступа из связанного динамического метода.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Возвращает маркер, допустимый в области текущего DynamicILInfo, представляющего метод универсального типа.

GetTokenFor(RuntimeMethodHandle)

Возвращает маркер, допустимый в области текущего DynamicILInfo, представляющего метод, к который будет обращаться из связанного динамического метода.

GetTokenFor(RuntimeTypeHandle)

Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего тип, используемый в связанном динамическом методе.

GetTokenFor(String)

Возвращает маркер, допустимый в области текущего DynamicILInfo, представляющего строковый литерал, используемый в связанном динамическом методе.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
SetCode(Byte[], Int32)

Задает текст кода связанного динамического метода.

SetCode(Byte*, Int32, Int32)

Задает текст кода связанного динамического метода.

SetExceptions(Byte[])

Задает метаданные исключения для связанного динамического метода.

SetExceptions(Byte*, Int32)

Задает метаданные исключения для связанного динамического метода.

SetLocalSignature(Byte[])

Задает сигнатуру локальной переменной, описывающую макет локальных переменных для связанного динамического метода.

SetLocalSignature(Byte*, Int32)

Задает сигнатуру локальной переменной, описывающую макет локальных переменных для связанного динамического метода.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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