Este tema aún no ha recibido ninguna valoración - Valorar este tema

GeneratorSupport (Enumeración)

Define los identificadores utilizados para determinar si un generador de código es compatible con ciertos tipos de elementos de código.

La enumeración tiene un atributo FlagsAttribute que permite una combinación bit a bit de los valores de miembro.

Espacio de nombres: System.CodeDom.Compiler
Ensamblado: System (en system.dll)

[SerializableAttribute] 
[FlagsAttribute] 
public enum GeneratorSupport
/** @attribute SerializableAttribute() */ 
/** @attribute FlagsAttribute() */ 
public enum GeneratorSupport
SerializableAttribute 
FlagsAttribute 
public enum GeneratorSupport
  Nombre de miembro Descripción
ArraysOfArrays Indica si el generador es compatible con matrices de matrices. 
AssemblyAttributes Indica si el generador es compatible con atributos de ensamblados. 
ChainedConstructorArguments Indica si el generador es compatible con los argumentos constructores encadenados. 
ComplexExpressions Indica si el generador es compatible con expresiones complejas. 
DeclareDelegates Indica si el generador es compatible con declaraciones de delegados. 
DeclareEnums Indica si el generador es compatible con declaraciones de enumeración. 
DeclareEvents Indica si el generador es compatible con declaraciones de eventos. 
DeclareIndexerProperties Indica si el generador es compatible con la declaración de propiedades del indizador. 
DeclareInterfaces Indica si el generador es compatible con declaraciones de interfaz. 
DeclareValueTypes Indica si el generador es compatible con declaraciones de tipo de valor. 
EntryPointMethod Indica si el generador es compatible con una designación de método de punto de entrada de programa. Se utiliza cuando se crean los ejecutables. 
GenericTypeDeclaration Indica si el generador es compatible con declaraciones de tipos genéricos. 
GenericTypeReference Indica si el generador es compatible con referencias de tipos genéricos. 
GotoStatements Indica si el generador es compatible con instrucciones goto. 
MultidimensionalArrays Indica si el generador es compatible con matrices multidimensionales de referencia. Actualmente, no se puede utilizar CodeDom para crear una instancia de matrices multidimensionales. 
MultipleInterfaceMembers Indica si el generador es compatible con la declaración de miembros que implementan múltiples interfaces. 
NestedTypes Indica si el generador es compatible con la declaración de tipos anidados. 
ParameterAttributes Indica si el generador es compatible con atributos de parámetros. 
PartialTypes Indica si el generador es compatible con declaraciones de tipos genéricos. 
PublicStaticMembers Indica si el generador es compatible con miembros estáticos públicos. 
ReferenceParameters Indica si el generador es compatible con parámetros de referencia y de salida. 
Resources Indica si el generador admite la compilación con recursos de .NET Framework. Éstos pueden ser recursos predeterminados compilados directamente en un ensamblado o recursos a los que se hace referencia en un ensamblado satélite. 
ReturnTypeAttributes Indica si el generador es compatible con declaraciones de atributos de tipo de valor devuelto. 
StaticConstructors Indica si el generador es compatible con constructores estáticos. 
TryCatchStatements Indica si el generador es compatible con instrucciones try...catch
Win32Resources Indica si el generador es compatible con la compilación de recursos Win32. 

Estos identificadores se utilizan cuando se llama al método Supports de un generador de código para determinar si el generador de código admite la generación de determinados tipos de código.

En el ejemplo siguiente se muestra el uso de CompilerParameters para especificar diversas opciones y valores de configuración del compilador.

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 (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("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("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;
    }
}

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar