DynamicILInfo Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обеспечивает поддержку альтернативных методов создания MSIL и метаданных для динамического метода, включая методы создания токенов и вставки кода, обработки исключений и больших двоичных объектов подписи локальных переменных.
public ref class DynamicILInfo sealed
public ref class DynamicILInfo
public sealed class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
type DynamicILInfo = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
Public NotInheritable Class DynamicILInfo
Public Class DynamicILInfo
- Наследование
-
DynamicILInfo
- Атрибуты
Комментарии
Класс DynamicILInfo позволяет разработчикам создавать собственные генераторы MSIL вместо использования ILGenerator.
Для создания экземпляров других типов, методов вызова и т. д. создаваемый MSIL должен включать маркеры для этих сущностей. Класс DynamicILInfo предоставляет несколько перегрузок GetTokenFor метода , которые возвращают маркеры, допустимые в область текущего DynamicILInfo. Например, если необходимо вызвать перегрузку Console.WriteLine метода, можно получить RuntimeMethodHandle для этой перегрузки и передать ее методу GetTokenFor , чтобы получить маркер для внедрения в MSIL.
После создания Byte массивов для сигнатуры локальных переменных, исключений и текста кода можно использовать SetCodeметоды , SetExceptionsи SetLocalSignature , чтобы вставить их в объект , связанный DynamicMethod с объектом DynamicILInfo .
Для создания собственных метаданных и MSIL требуется знакомство с документацией по общеязыковой инфраструктуре (CLI), в частности с разделом II: определение и семантика метаданных и раздел III. Набор инструкций CIL. Дополнительные сведения см. в разделе ECMA 335 COMMON Language Infrastructure (CLI).
Примечание
Не используйте для DynamicILInfo создания кода, который создает делегат для другого динамического метода путем вызова конструктора делегата напрямую. Вместо этого используйте метод для CreateDelegate создания делегата. Делегат, созданный с помощью конструктора делегата, не имеет ссылки на целевой динамический метод. Динамический метод может быть восстановлен сборкой мусора, пока делегат все еще используется.
Свойства
DynamicMethod |
Возвращает динамический метод, основной текст которого создан текущим экземпляром. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetTokenFor(Byte[]) |
Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего подпись для связанного динамического метода. |
GetTokenFor(DynamicMethod) |
Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего динамический метод, который должен быть вызван из связанного метода. |
GetTokenFor(RuntimeFieldHandle) |
Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего поле, к которому должен быть предоставлен доступ из связанного динамического метода. |
GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle) |
Получает токен, допустимый в области текущего объекта DynamicILInfo, представляющего поле, к которому должен быть предоставлен доступ из связанного динамического метода; поле относится к указанному универсальному типу. |
GetTokenFor(RuntimeMethodHandle) |
Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего метод, к которому должен быть предоставлен доступ из связанного динамического метода. |
GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle) |
Возвращает токен, допустимый в области действия текущего DynamicILInfo, представляющего метод в универсальном типе. |
GetTokenFor(RuntimeTypeHandle) |
Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего тип, который будет использоваться в связанном динамическом методе. |
GetTokenFor(String) |
Возвращает токен, допустимый в области текущего DynamicILInfo, представляющего строковый литерал, который будет использоваться в связанном динамическом методе. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
SetCode(Byte*, Int32, Int32) |
Задает основной текст кода связанного динамического метода. |
SetCode(Byte[], Int32) |
Задает основной текст кода связанного динамического метода. |
SetExceptions(Byte*, Int32) |
Задает метаданные исключения для связанного динамического метода. |
SetExceptions(Byte[]) |
Задает метаданные исключения для связанного динамического метода. |
SetLocalSignature(Byte*, Int32) |
Задает подпись локальной переменной, которая описывает структуру локальных переменных для связанного динамического метода. |
SetLocalSignature(Byte[]) |
Задает подпись локальной переменной, которая описывает структуру локальных переменных для связанного динамического метода. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |