Главная страница   /   5. Создание кода при помощи Reflection.Emit (Метапрограммирование в .NET

Метапрограммирование в .NET

Метапрограммирование в .NET

Кевин Хазард

5. Создание кода при помощи Reflection.Emit

В этой главе:

  • Сценарии для генерации кода во время выполнения
  • Краткий обзор кодов операций (opcode)
  • Построение кода при помощи Reflection.Emit и DynamicMethod

В главе 4 было показано, как можно создать код с помощью CodeDOM. Другой вариант в .NET позволяет вам делать то же самое, за исключением того, что IL используется напрямую для создания кода во время выполнения. Это обеспечивает значительный прирост производительности и доступ к любой функции, которая поддерживается CLR. Все поддерживаемые классы существует в пространстве имен System.Reflection.Emit, и этому посвящена данная глава. Мы расскажем, как работают коды операций, а затем вы увидите примеры создания динамических сборок и методов.

Первое, что вы должны понять, это то, почему кто-то вообще должен вникать в классы Reflection.Emit для решения конкретных проблем. И это мы рассмотрим в следующем разделе.

5.1. Почему классы Reflection.Emit?

5.2. Сборка изнутри

5.3. Тур по opcode

5.4. Создание динамических сборок

5.5. Легковесная генерация кода при помощи динамических методов

5.6. Резюме