Создание кода при помощи Reflection.Emit
В этой главе:
- Сценарии для генерации кода во время выполнения
- Краткий обзор кодов операций (opcode)
- Построение кода при помощи
Reflection.Emit
иDynamicMethod
В главе 4 было показано, как можно создать код с помощью CodeDOM. Другой вариант в .NET позволяет вам делать то же самое, за исключением того, что IL используется напрямую для создания кода во время выполнения. Это обеспечивает значительный прирост производительности и доступ к любой функции, которая поддерживается CLR. Все поддерживаемые классы существует в пространстве имен System.Reflection.Emit
, и этому посвящена данная глава. Мы расскажем, как работают коды операций, а затем вы увидите примеры создания динамических сборок и методов.
Первое, что вы должны понять, это то, почему кто-то вообще должен вникать в классы Reflection.Emit
для решения конкретных проблем. И это мы рассмотрим в следующем разделе.
Почему классы Reflection.Emit?