Компиляция и создание динамического исходного кода

.NET включает механизм, называемый объектной моделью документа кода (CodeDOM), который позволяет разработчикам программ, которые выдают исходный код для создания исходного кода на нескольких языках программирования во время выполнения на основе одной модели, представляющей код для отрисовки.

Для представления исходного кода элементы CodeDOM связываются друг с другом, образуя структуру данных, известную как граф CodeDOM, которая моделирует структуру некоторого исходного кода.

Пространство имен System.CodeDom определяет типы, с помощью которых логическая структура исходного кода может быть представлена независимо от конкретного языка программирования. Пространство имен System.CodeDom.Compiler определяет типы, используемые для формирования исходного кода на основе графов CodeDOM и управления компиляцией исходного кода на поддерживаемых языках. Набор поддерживаемых языков может быть расширен разработчиками или поставщиками компиляторов.

Независимое от языка моделирование исходного кода может быть полезно, если программа должна создавать исходный код для модели программы на нескольких языках или если конечный язык заранее не определен. Например, некоторые конструкторы используют модель CodeDOM в качестве интерфейса абстракции от языка для получения исходного кода на требуемом языке программирования, если имеется поддержка CodeDOM для этого языка.

.NET включает генераторы кода и компиляторы кода для CSharpCodeProvider, JScriptCodeProviderа также VBCodeProvider.

Справочные материалы

  • System.CodeDom

    Определяет элементы, представляющие элементы кода на языках программирования, предназначенных для среды CLR.

  • System.CodeDom.Compiler

    Определяет интерфейсы для формирования и компиляции кода во время выполнения.