CodeCompileUnit 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 CodeDOM 程序图形提供容器。
public ref class CodeCompileUnit : System::CodeDom::CodeObjectpublic 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.CodeObjecttype CodeCompileUnit = class
    inherit CodeObject[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type CodeCompileUnit = class
    inherit CodeObjectPublic Class CodeCompileUnit
Inherits CodeObject- 继承
- 派生
- 属性
示例
下面的代码示例构造一个 CodeCompileUnit ,该函数为简单“Hello World”程序的程序结构建模。 此代码示例是更大示例的一部分,该示例也从此模型生成代码,并为 CodeDomProvider 类提供。
// Build a Hello World program graph using 
// System::CodeDom types.
static CodeCompileUnit^ BuildHelloWorldGraph()
{
    // Create a new CodeCompileUnit to contain 
    // the program graph.
    CodeCompileUnit^ compileUnit = gcnew CodeCompileUnit;
    // Declare a new namespace called Samples.
    CodeNamespace^ samples = gcnew 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( gcnew CodeNamespaceImport( "System" ) );
    // Declare a new type called Class1.
    CodeTypeDeclaration^ class1 = gcnew CodeTypeDeclaration( "Class1" );
    // Add the new type to the namespace's type collection.
    samples->Types->Add( class1 );
    // Declare a new code entry point method.
    CodeEntryPointMethod^ start = gcnew CodeEntryPointMethod;
    // Create a type reference for the System::Console class.
    CodeTypeReferenceExpression^ csSystemConsoleType = gcnew CodeTypeReferenceExpression( "System.Console" );
    // Build a Console::WriteLine statement.
    CodeMethodInvokeExpression^ cs1 = gcnew CodeMethodInvokeExpression( csSystemConsoleType,"WriteLine", gcnew CodePrimitiveExpression("Hello World!") );
    // Add the WriteLine call to the statement collection.
    start->Statements->Add( cs1 );
    // Build another Console::WriteLine statement.
    CodeMethodInvokeExpression^ cs2 = gcnew CodeMethodInvokeExpression( csSystemConsoleType,"WriteLine", gcnew 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.
    CodeMethodReferenceExpression^ csReadLine = gcnew CodeMethodReferenceExpression( csSystemConsoleType, "ReadLine" );
    CodeMethodInvokeExpression^ cs3 = gcnew CodeMethodInvokeExpression( csReadLine, gcnew array<CodeExpression^>(0) );
    // Add the ReadLine statement.
    start->Statements->Add( cs3 );
    // Add the code entry point method to
    // the Members collection of the type.
    class1->Members->Add( start );
    return compileUnit;
}
// 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;
}
' Build a Hello World program graph using 
' System.CodeDom types.
Public Shared Function BuildHelloWorldGraph() As CodeCompileUnit
    ' Create a new CodeCompileUnit to contain 
    ' the program graph.
    Dim compileUnit As New CodeCompileUnit()
    ' Declare a new namespace called Samples.
    Dim samples As 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.
    Dim class1 As New CodeTypeDeclaration("Class1")
    ' Add the new type to the namespace type collection.
    samples.Types.Add(class1)
    ' Declare a new code entry point method.
    Dim start As New CodeEntryPointMethod()
    ' Create a type reference for the System.Console class.
    Dim csSystemConsoleType As New CodeTypeReferenceExpression( _
        "System.Console")
    ' Build a Console.WriteLine statement.
    Dim cs1 As 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.
    Dim cs2 As 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.
    Dim csReadLine As 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
End Function
注解
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) |