Предоставление динамических методов и сборок
В этом разделе описывается набор управляемых типов в System.Reflection.Emit пространстве имен, позволяющий компилятору или инструменту выдавать метаданные и общий промежуточный язык (CIL) во время выполнения и при необходимости создавать переносимый исполняемый файл (PE) на диске. Основными пользователями этого пространства имен являются обработчики скриптов и компиляторы. В этом разделе функциональные возможности, предоставляемые System.Reflection.Emit пространством имен, называются отражением.
Порождение отражения предоставляет следующие возможности:
- определение облегченных глобальных методов во время выполнения с помощью класса DynamicMethod и их выполнение с помощью делегатов;
- определение сборок во время выполнения и последующий их запуск или сохранение на диск;
- определение сборок во время выполнения с последующим их запуском, выгрузкой и предоставлением сборке мусора разрешения на получение их ресурсов;
- определение модулей в новых сборках во время выполнения с последующим их запуском или сохранением на диске;
- определение типов в модулях во время выполнения, создание экземпляров этих типов и вызов их методов;
- определение символьной информации для определяемых модулей, которая может использоваться такими средствами, как отладчики и профилировщики кода.
Помимо управляемых типов в System.Reflection.Emit пространстве имен существуют неуправляемые интерфейсы метаданных, описанные в справочной документации по интерфейсам метаданных . Управляемое порождение отражения обеспечивает более строгую проверку семантических ошибок и более высокий уровень абстрагирования метаданных, чем неуправляемые интерфейсы метаданных.
Другим полезным ресурсом для работы с метаданными и CIL является документация по инфраструктуре общего языка (CLI), особенно "Раздел II: определение метаданных и семантика" и "Набор инструкций CIL" секции III. Документация доступна в Интернете на веб-сайте Ecma.
Справочные материалы
OpCodes
Каталогит коды инструкций CIL, которые можно использовать для создания тел методов.
System.Reflection.Emit
Содержит управляемые классы, используемые для порождения динамических методов, сборок и типов.
Type
Описывается класс Type, который представляет типы в управляемом отражении и порождении отражения и является ключевым элементом при использовании этих технологий.
System.Reflection
Содержит управляемые классы, используемые для просмотра метаданных и управляемого кода.