Прочитать на английском

Поделиться через


CodeCompileUnit Класс

Определение

Предусматривает контейнер для программного графа CodeDOM.

public class CodeCompileUnit : System.CodeDom.CodeObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CodeCompileUnit : System.CodeDom.CodeObject
Наследование
CodeCompileUnit
Производный
Атрибуты

Примеры

В следующем примере кода создается объект , который моделирует CodeCompileUnit структуру простой программы "Hello World". Этот пример кода является частью более крупного примера, который также создает код из этой модели и предоставляется для CodeDomProvider класса .

// Build a Hello World program graph using
// System.CodeDom types.
public static CodeCompileUnit BuildHelloWorldGraph()
{
    // Create a new CodeCompileUnit to contain
    // the program graph.
    CodeCompileUnit compileUnit = new CodeCompileUnit();

    // Declare a new namespace called Samples.
    CodeNamespace samples = new CodeNamespace("Samples");
    // Add the new namespace to the compile unit.
    compileUnit.Namespaces.Add(samples);

    // Add the new namespace import for the System namespace.
    samples.Imports.Add(new CodeNamespaceImport("System"));

    // Declare a new type called Class1.
    CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1");
    // Add the new type to the namespace type collection.
    samples.Types.Add(class1);

    // Declare a new code entry point method.
    CodeEntryPointMethod start = new CodeEntryPointMethod();

    // Create a type reference for the System.Console class.
    CodeTypeReferenceExpression csSystemConsoleType = new CodeTypeReferenceExpression("System.Console");

    // Build a Console.WriteLine statement.
    CodeMethodInvokeExpression cs1 = new CodeMethodInvokeExpression(
        csSystemConsoleType, "WriteLine",
        new CodePrimitiveExpression("Hello World!"));

    // Add the WriteLine call to the statement collection.
    start.Statements.Add(cs1);

    // Build another Console.WriteLine statement.
    CodeMethodInvokeExpression cs2 = new CodeMethodInvokeExpression(
        csSystemConsoleType, "WriteLine",
        new CodePrimitiveExpression("Press the Enter key to continue."));

    // Add the WriteLine call to the statement collection.
    start.Statements.Add(cs2);

    // Build a call to System.Console.ReadLine.
    CodeMethodInvokeExpression csReadLine = new CodeMethodInvokeExpression(
        csSystemConsoleType, "ReadLine");

    // Add the ReadLine statement.
    start.Statements.Add(csReadLine);

    // Add the code entry point method to
    // the Members collection of the type.
    class1.Members.Add(start);

    return compileUnit;
}

Комментарии

CodeCompileUnit предоставляет контейнер для графа программы CodeDOM.

CodeCompileUnit содержит коллекцию, в которую могут храниться CodeNamespace объекты, содержащие графы исходного кода CodeDOM, а также коллекция сборок, на которые ссылается проект, и коллекция атрибутов сборки проекта.

Можно CodeCompileUnit передать GenerateCodeFromCompileUnit в метод реализации вместе с другими параметрами ICodeGenerator для создания кода на основе графа программы, содержащегося в единице компиляции.

Примечание

Некоторые языки поддерживают только одно пространство имен, содержащее один класс в единице компиляции.

Конструкторы

CodeCompileUnit()

Инициализирует новый экземпляр класса CodeCompileUnit.

Свойства

AssemblyCustomAttributes

Получает коллекцию пользовательских атрибутов для создаваемой сборки.

EndDirectives

Получает объект CodeDirectiveCollection, содержащий конечные директивы.

Namespaces

Получает коллекцию пространств имен.

ReferencedAssemblies

Возвращает сборки, на которые имеются ссылки.

StartDirectives

Получает объект CodeDirectiveCollection, содержащий начальные директивы.

UserData

Получает определяемые пользователем данные для текущего объекта.

(Унаследовано от CodeObject)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

Продукт Версии
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9