Выбрать главу

  Роль исполняющей среды динамического языка

   Роль деревьев выражений

   Динамический поиск в деревьях выражений во время выполнения

  Упрощение вызовов с поздним связыванием посредством динамических типов

   Использование ключевого слова dynamic для передачи аргументов

  Упрощение взаимодействия с СОМ посредством динамических данных (только Windows)

   Роль основных сборок взаимодействия

   Встраивание метаданных взаимодействия

   Общие сложности взаимодействия с СОМ

  Взаимодействие с СОМ с использованием динамических данных C#

  Резюме

Глава 19

  Причины для изучения грамматики языка CIL

  Директивы, атрибуты и коды операций CIL

   Роль директив CIL

   Роль атрибутов CIL

   Роль кодов операций СIL

   Разница между кодами операций и их мнемоническими эквивалентами в СIL

  Заталкивание и выталкивание: основанная на стеке природа CIL

  Возвратное проектирование

   Роль меток в коде CIL

   Взаимодействие c CIL: модификация файла *.il

   Компиляция кода CIL

  Директивы и атрибуты CIL

   Указание ссылок на внешние сборки в CIL

   Определение текущей сборки в CIL

   Определение пространств имен в CIL

   Определение типов классов в CIL

   Определение и реализация интерфейсов в CIL

   Определение структур в CIL

   Определение перечислений в CIL

   Определение обобщений в CIL

  Компиляция файла CILTypes.il

  Соответствия между типами данных в библиотеке базовых классов .NET Core, C# и CIL

   Определение членов типов в CIL

   Определение полей данных в CIL

   Определение конструкторов типа в CIL

   Определение свойств в CIL

   Определение параметров членов

  Исследование кодов операций CIL

   Директива .maxstack

   Объявление локальных переменных в CIL

   Отображение параметров на локальные переменные в CIL

   Скрытая ссылка this

   Представление итерационных конструкций в CIL

   Заключительные слова о языке CIL

  Динамические сборки

   Исследование пространства имен System.Reflection.Emit

   Роль типа System.Reflection.Emit.ILGenerator

   Выпуск динамической сборки

   Выпуск сборки и набора модулей

   Роль типа ModuleBuilder

   Выпуск типа HelloClass и строковой переменной-члена

   Выпуск конструкторов

   Выпуск метода SayHello()

   Использование динамически сгенерированной сборки

  Резюме

   Часть VI

Глава 20

  Исследование пространства имен System.IO

  Классы Directory(Directorylnfо) и File(FileInfo)

   Абстрактный базовый класс FileSystemInfo

  Работа с типом DirectoryInfо

   Перечисление файлов с помощью типа DirectoryInfо

   Создание подкаталогов с помощью типа DirectoryInfo

  Работа с типом Directory

  Работа с типом DriveInfo

  Работа с типом FileInfo