GeneratorSupport 枚举 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义用于确定代码生成器是否支持特定代码元素类型的标识符。
此枚举支持其成员值的按位组合。
public enum class GeneratorSupport[System.Flags]
public enum GeneratorSupport[System.Flags]
[System.Serializable]
public enum GeneratorSupport[<System.Flags>]
type GeneratorSupport = [<System.Flags>]
[<System.Serializable>]
type GeneratorSupport = Public Enum GeneratorSupport- 继承
- 属性
字段
| 名称 | 值 | 说明 | 
|---|---|---|
| ArraysOfArrays | 1 | 指示支持数组的数组的生成器。 | 
| AssemblyAttributes | 4096 | 指示支持程序集特性的生成器。 | 
| ChainedConstructorArguments | 32768 | 指示支持连锁构造函数参数的生成器。 | 
| ComplexExpressions | 524288 | 指示支持复杂表达式的生成器。 | 
| DeclareDelegates | 512 | 指示支持委托声明的生成器。 | 
| DeclareEnums | 256 | 指示支持枚举声明的生成器。 | 
| DeclareEvents | 2048 | 指示支持事件声明的生成器。 | 
| DeclareIndexerProperties | 33554432 | 指示支持索引器属性的声明的生成器。 | 
| DeclareInterfaces | 1024 | 指示支持接口声明的生成器。 | 
| DeclareValueTypes | 128 | 指示支持值类型声明的生成器。 | 
| EntryPointMethod | 2 | 指示支持程序入口点方法指定的生成器。 这在生成可执行文件时使用。 | 
| GenericTypeDeclaration | 16777216 | 指示支持泛型类型声明的生成器。 | 
| GenericTypeReference | 8388608 | 指示支持泛型类型引用的生成器。 | 
| GotoStatements | 4 | 指示支持 goto 语句的生成器。 | 
| MultidimensionalArrays | 8 | 指示支持引用多维数组的生成器。 当前,CodeDom 不能用于实例化多维数组。 | 
| MultipleInterfaceMembers | 131072 | 指示生成器支持实现多个接口的成员声明。 | 
| NestedTypes | 65536 | 指示生成器支持嵌套类型声明。 | 
| ParameterAttributes | 8192 | 指示支持参数特性的生成器。 | 
| PartialTypes | 4194304 | 指示支持分部类型声明的生成器。 | 
| PublicStaticMembers | 262144 | 指示支持公共静态成员的生成器。 | 
| ReferenceParameters | 16384 | 指示生成器支持引用和输出参数。 | 
| Resources | 2097152 | 指示生成器支持使用 .NET 资源进行编译。 可以是直接编译为程序集的默认资源或在附属程序集中引用的资源。 | 
| ReturnTypeAttributes | 64 | 指示支持返回类型特性声明的生成器。 | 
| StaticConstructors | 16 | 指示生成器支持静态构造函数。 | 
| TryCatchStatements | 32 | 指示支持  | 
| Win32Resources | 1048576 | 指示生成器支持使用 Win32 资源进行编译。 | 
示例
下面的示例演示如何使用 CompilerParameters 指定各种编译器设置和选项。
static bool CompileCode( CodeDomProvider^ provider,
   String^ sourceFile,
   String^ exeFile )
{
   CompilerParameters^ cp = gcnew CompilerParameters;
   if ( !cp)  
   {
      return false;
   }
   // Generate an executable instead of 
   // a class library.
   cp->GenerateExecutable = true;
   
   // Set the assembly file name to generate.
   cp->OutputAssembly = exeFile;
   
   // Generate debug information.
   cp->IncludeDebugInformation = true;
   
   // Add an assembly reference.
   cp->ReferencedAssemblies->Add( "System.dll" );
   
   // Save the assembly as a physical file.
   cp->GenerateInMemory = false;
   
   // Set the level at which the compiler 
   // should start displaying warnings.
   cp->WarningLevel = 3;
   
   // Set whether to treat all warnings as errors.
   cp->TreatWarningsAsErrors = false;
   
   // Set compiler argument to optimize output.
   cp->CompilerOptions = "/optimize";
   
   // Set a temporary files collection.
   // The TempFileCollection stores the temporary files
   // generated during a build in the current directory,
   // and does not delete them after compilation.
   cp->TempFiles = gcnew TempFileCollection( ".",true );
   if ( provider->Supports( GeneratorSupport::EntryPointMethod ) )
   {
      // Specify the class that contains 
      // the main method of the executable.
      cp->MainClass = "Samples.Class1";
   }
   if ( Directory::Exists( "Resources" ) )
   {
      if ( provider->Supports( GeneratorSupport::Resources ) )
      {
         // Set the embedded resource file of the assembly.
         // This is useful for culture-neutral resources,
         // or default (fallback) resources.
         cp->EmbeddedResources->Add( "Resources\\Default.resources" );
         // Set the linked resource reference files of the assembly.
         // These resources are included in separate assembly files,
         // typically localized for a specific language and culture.
         cp->LinkedResources->Add( "Resources\\nb-no.resources" );
      }
   }
   // Invoke compilation.
   CompilerResults^ cr = provider->CompileAssemblyFromFile( cp, sourceFile );
   if ( cr->Errors->Count > 0 )
   {
      // Display compilation errors.
      Console::WriteLine( "Errors building {0} into {1}",
         sourceFile, cr->PathToAssembly );
      for each ( CompilerError^ ce in cr->Errors )
      {
         Console::WriteLine( "  {0}", ce->ToString() );
         Console::WriteLine();
      }
   }
   else
   {
      Console::WriteLine( "Source {0} built into {1} successfully.",
         sourceFile, cr->PathToAssembly );
   }
   // Return the results of compilation.
   if ( cr->Errors->Count > 0 )
   {
      return false;
   }
   else
   {
      return true;
   }
}
public static bool CompileCode(CodeDomProvider provider,
    String sourceFile,
    String exeFile)
{
    CompilerParameters cp = new CompilerParameters();
    // Generate an executable instead of
    // a class library.
    cp.GenerateExecutable = true;
    // Set the assembly file name to generate.
    cp.OutputAssembly = exeFile;
    // Generate debug information.
    cp.IncludeDebugInformation = true;
    // Add an assembly reference.
    cp.ReferencedAssemblies.Add( "System.dll" );
    // Save the assembly as a physical file.
    cp.GenerateInMemory = false;
    // Set the level at which the compiler
    // should start displaying warnings.
    cp.WarningLevel = 3;
    // Set whether to treat all warnings as errors.
    cp.TreatWarningsAsErrors = false;
    // Set compiler argument to optimize output.
    cp.CompilerOptions = "/optimize";
    // Set a temporary files collection.
    // The TempFileCollection stores the temporary files
    // generated during a build in the current directory,
    // and does not delete them after compilation.
    cp.TempFiles = new TempFileCollection(".", true);
    if (provider.Supports(GeneratorSupport.EntryPointMethod))
    {
        // Specify the class that contains
        // the main method of the executable.
        cp.MainClass = "Samples.Class1";
    }
    if (Directory.Exists("Resources"))
    {
        if (provider.Supports(GeneratorSupport.Resources))
        {
            // Set the embedded resource file of the assembly.
            // This is useful for culture-neutral resources,
            // or default (fallback) resources.
            cp.EmbeddedResources.Add("Resources\\Default.resources");
            // Set the linked resource reference files of the assembly.
            // These resources are included in separate assembly files,
            // typically localized for a specific language and culture.
            cp.LinkedResources.Add("Resources\\nb-no.resources");
        }
    }
    // Invoke compilation.
    CompilerResults cr = provider.CompileAssemblyFromFile(cp, sourceFile);
    if(cr.Errors.Count > 0)
    {
        // Display compilation errors.
        Console.WriteLine("Errors building {0} into {1}",
            sourceFile, cr.PathToAssembly);
        foreach(CompilerError ce in cr.Errors)
        {
            Console.WriteLine("  {0}", ce.ToString());
            Console.WriteLine();
        }
    }
    else
    {
        Console.WriteLine("Source {0} built into {1} successfully.",
            sourceFile, cr.PathToAssembly);
        Console.WriteLine("{0} temporary files created during the compilation.",
            cp.TempFiles.Count.ToString());
    }
    // Return the results of compilation.
    if (cr.Errors.Count > 0)
    {
        return false;
    }
    else
    {
        return true;
    }
}
Public Shared Function CompileCode(ByVal provider As CodeDomProvider, _
ByVal sourceFile As String, ByVal exeFile As String) As Boolean
    Dim cp As New CompilerParameters()
    ' Generate an executable instead of 
    ' a class library.
    cp.GenerateExecutable = True
    ' Set the assembly file name to generate.
    cp.OutputAssembly = exeFile
    ' Generate debug information.
    cp.IncludeDebugInformation = True
    ' Add an assembly reference.
    cp.ReferencedAssemblies.Add("System.dll")
    ' Save the assembly as a physical file.
    cp.GenerateInMemory = False
    ' Set the level at which the compiler 
    ' should start displaying warnings.
    cp.WarningLevel = 3
    ' Set whether to treat all warnings as errors.
    cp.TreatWarningsAsErrors = False
    ' Set compiler argument to optimize output.
    cp.CompilerOptions = "/optimize"
    ' Set a temporary files collection.
    ' The TempFileCollection stores the temporary files
    ' generated during a build in the current directory,
    ' and does not delete them after compilation.
    cp.TempFiles = New TempFileCollection(".", True)
    If provider.Supports(GeneratorSupport.EntryPointMethod) Then
        ' Specify the class that contains
        ' the main method of the executable.
        cp.MainClass = "Samples.Class1"
    End If
    If Directory.Exists("Resources") Then
        If provider.Supports(GeneratorSupport.Resources) Then
            ' Set the embedded resource file of the assembly.
            ' This is useful for culture-neutral resources,
            ' or default (fallback) resources.
            cp.EmbeddedResources.Add("Resources\Default.resources")
            ' Set the linked resource reference files of the assembly.
            ' These resources are included in separate assembly files,
            ' typically localized for a specific language and culture.
            cp.LinkedResources.Add("Resources\nb-no.resources")
        End If
    End If
    ' Invoke compilation.
    Dim cr As CompilerResults = _
        provider.CompileAssemblyFromFile(cp, sourceFile)
    If cr.Errors.Count > 0 Then
        ' Display compilation errors.
        Console.WriteLine("Errors building {0} into {1}", _
            sourceFile, cr.PathToAssembly)
        Dim ce As CompilerError
        For Each ce In cr.Errors
            Console.WriteLine("  {0}", ce.ToString())
            Console.WriteLine()
        Next ce
    Else
        Console.WriteLine("Source {0} built into {1} successfully.", _
            sourceFile, cr.PathToAssembly)
        Console.WriteLine("{0} temporary files created during the compilation.", _
                cp.TempFiles.Count.ToString())
    End If
    ' Return the results of compilation.
    If cr.Errors.Count > 0 Then
        Return False
    Else
        Return True
    End If
End Function 'CompileCode
注解
调用 Supports 代码生成器的 方法以确定代码生成器是否支持生成某些类型的代码时,会使用这些标识符。