Создание кода при помощи CodeDOM
В этой главе:
- Понимание CodeDOM
- Классы провайдеров кода
- Добавление объектов в граф кода
- Метапрограммирование с CodeDOM
Веб браузеры имеют объектную модель документа (DOM) для создания окон и управления навигацией между страницами. В HTML есть DOM для описания содержания и структуры этих страницах. В JavaScript есть DOM для автоматизации других. Эти модели уместно назвать DOM, потому что они – технологии для World Wide Web, который является в значительной степени документо-ориентированной системой.
Учитывая широкий круг ролей, которые может исполнить DOM, как вы думаете, что делает Microsoft CodeDOM? Он может быть использован для описания кода. Как вы узнали из глав 1 и 2, .NET предоставляет богатый фундамент метаданных для приложений. Или, возможно, он используется для определения кода в качестве данных в своего рода манере структуры документа. API, так многообещающе названный, также может быть использован для генерации кода. В конце концов, JavaScript может генерировать HTML на лету. Тогда почему бы CodeDOM не генерировать .NET код динамически?
Как вы уже догадались по нашим гипотезам о природе API, CodeDOM и основные поставщики кода, о которых вы узнаете в этой главе, включают все эти сценарии в .NET:
- Описание кода в, по большей части, независимой от языка структуре данных
- Создание исходного кода на разных языках
- Компиляция кода и "кода-как-данных" в .NET сборки
CodeDOM является инструментом метапрограммирования, который должен понять каждый серьезный разработчик на .NET платформе. В этой главе вы начнете с изучения графов кода, конструкций, которые использует CodeDOM, чтобы выразить логику и структуру кода как данные. Затем мы рассмотрим различные провайдеры CodeDOM и наиболее важные классы в пространствах имен System.CodeDom
и System.CodeDom.Compiler
. После этого вы изучите пример, который поможет вам понять мощь CodeDOM.
Добавление объектов в граф кода