Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Резюме
Резюме
В этой главе предлагается краткий обзор возможностей синтаксиса и семантики CIL. В отличие от управляемых языков высшего уровня, таких как, например, C#, в CIL не просто определяется набор ключевых слов, но и директивы (для определения структуры компоновочного блока и его типов), атрибуты (уточняющие характеристики соответствующей директивы) и коды операций (используемые для реализации членов типов). Был также рассмотрен компилятор CIL (ilasm.exe). Вы узнали о том, как изменить содержимое компоновочного блока .NET, непосредственно изменяя его программный код CIL, и рассмотрели основные этапы, процесса построения компоновочного блока .NET с помощью CIL.
Вторая половина главы была посвящена обсуждению пространства имен System.Reflection.Emit. Используя соответствующие типы, вы можете создавать компоновочные блоки .NET в памяти динамически. При желании можно также сохранить созданный в памяти образ в физическом файле на диске. Многие типы System.Reflection.Emit автоматически генерируют подходящие директивы и атрибуты CIL, используя другие связанные с ними типы, такие как ConstructorBuilder, TypeBuilder и т.д. Тип ILGenerator может использоваться для добавления необходимых кодов операций CIL в члены типа. И хотя существует целый ряд вспомогательных типов, призванных упростить процесс создания программ при использовании кодов операций CIL, для успешного создания динамических компоновочных блоков вам понадобится хорошее понимание языка CIL.
- Природа программирования в терминах CIL
- Директивы, атрибуты и коды операций CIL
- Добавление и извлечение данных: стековая природа CIL
- Челночная технология разработки
- Директивы и атрибуты CIL
- Соответствие между типами библиотеки базовых классов .NET, C# и CIL
- Определение членов типов в CIL
- Анализ кодов операций CIL
- Создание компоновочного блока .NET в CIL
- Динамические компоновочные блоки
- Несколько слов о System.CodeDOM
- Резюме