Язык программирования C#9 и платформа .NET5
Шрифт:
Построение мультипроектного решения ExtendableApp
Создание решения и проектов с помощью интерфейса командной строки
Добавление событий PostBuild в файлы проектов
Создание решения и проектов с помощью Visual Studio
Установка зависимостей проектов при компиляции
Добавление событий PostBuild
Построение оснастки на C#
Построение оснастки на Visual Basic
Добавление кода для ExtendableApp
Резюме
Глава 18
Роль ключевого слова dynamic языка C#
Вызов членов на динамически объявленных данных
Область использования ключевого слова dynamic
Ограничения ключевого слова dynamic
Практическое использование ключевого слова dynamic
Роль исполняющей среды динамического языка
Роль деревьев выражений
Динамический поиск в деревьях выражений во время выполнения
Упрощение вызовов с поздним связыванием посредством динамических типов
Использование ключевого слова 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