Ler em inglês

Compartilhar via


GeneratorSupport Enumeração

Definição

Define identificadores usados para determinar se um gerador de código é compatível com determinados tipos de elementos de código.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

C#
[System.Flags]
public enum GeneratorSupport
C#
[System.Flags]
[System.Serializable]
public enum GeneratorSupport
Herança
GeneratorSupport
Atributos

Campos

Nome Valor Description
ArraysOfArrays 1

Indica que o gerador é compatível com matrizes de matrizes.

AssemblyAttributes 4096

Indica que o gerador é compatível com atributos de assembly.

ChainedConstructorArguments 32768

Indica que o gerador é compatível com argumentos de construtor encadeados.

ComplexExpressions 524288

Indica que o gerador é compatível com expressões complexas.

DeclareDelegates 512

Indica que o gerador é compatível com declarações delegadas.

DeclareEnums 256

Indica que o gerador é compatível com declarações de enumeração.

DeclareEvents 2048

Indica que o gerador é compatível com declarações de evento.

DeclareIndexerProperties 33554432

Indica que o gerador é compatível com declaração de propriedades de indexador.

DeclareInterfaces 1024

Indica que o gerador é compatível com declarações de interface.

DeclareValueTypes 128

Indica que o gerador é compatível com declarações de tipo de valor.

EntryPointMethod 2

Indica que o gerador é compatível com uma designação de método de ponto de entrada de programa. Isso é usado ao compilar executáveis.

GenericTypeDeclaration 16777216

Indica que o gerador é compatível com declarações de tipo genérico.

GenericTypeReference 8388608

Indica que o gerador é compatível com referências de tipo genérico.

GotoStatements 4

Indica que o gerador é compatível com instruções goto.

MultidimensionalArrays 8

Indica que o gerador é compatível com o referenciamento de matrizes multidimensionais. Atualmente, o CodeDom não pode ser usado para criar uma instância de matrizes multidimensionais.

MultipleInterfaceMembers 131072

Indica que o gerador é compatível com declaração de membros que implementam várias interfaces.

NestedTypes 65536

Indica que o gerador é compatível com declaração de tipos aninhados.

ParameterAttributes 8192

Indica que o gerador é compatível com atributos de parâmetro.

PartialTypes 4194304

Indica que o gerador é compatível com declarações de tipo parcial.

PublicStaticMembers 262144

Indica que o gerador é compatível com membros estáticos públicos.

ReferenceParameters 16384

Indica a gerador é compatível com referência e parâmetros de saída.

Resources 2097152

Indica que o gerador dá suporte à compilação com recursos do .NET. Estes podem ser recursos padrão compilados diretamente em um assembly ou recursos referenciados em um assembly satélite.

ReturnTypeAttributes 64

Indica que o gerador é compatível com declarações de atributo de tipo de retorno.

StaticConstructors 16

Indica que o gerador é compatível com construtores estáticos.

TryCatchStatements 32

Indica que o gerador é compatível com instruções try-catch.

Win32Resources 1048576

Indica que o gerador é compatível com a compilação com recursos do Win32.

Exemplos

O exemplo a seguir ilustra o uso CompilerParameters de para especificar várias configurações e opções do compilador.

C#
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;
    }
}

Comentários

Esses identificadores são usados ao chamar o Supports método de um gerador de código para determinar se o gerador de código dá suporte à geração de determinados tipos de código.

Aplica-se a

Produto Versões
.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

Confira também