GeneratorSupport Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define identificadores usados para determinar se um gerador de código dá suporte a determinados tipos de elementos de código.
Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.
public enum class GeneratorSupport
[System.Flags]
[System.Serializable]
public enum GeneratorSupport
[<System.Flags>]
[<System.Serializable>]
type GeneratorSupport =
Public Enum GeneratorSupport
- Herança
- Atributos
Campos
| Nome | Valor | Description |
|---|---|---|
| ArraysOfArrays | 1 | Indica que o gerador dá suporte a matrizes de matrizes. |
| EntryPointMethod | 2 | Indica que o gerador dá suporte a uma designação de método de ponto de entrada do programa. Isso é usado ao criar executáveis. |
| GotoStatements | 4 | Indica que o gerador dá suporte a instruções goto. |
| MultidimensionalArrays | 8 | Indica que o gerador dá suporte à referência a matrizes multidimensionais. Atualmente, o CodeDom não pode ser usado para instanciar matrizes multidimensionais. |
| StaticConstructors | 16 | Indica que o gerador dá suporte a construtores estáticos. |
| TryCatchStatements | 32 | Indica que o gerador dá |
| ReturnTypeAttributes | 64 | Indica que o gerador dá suporte a declarações de atributo de tipo de retorno. |
| DeclareValueTypes | 128 | Indica que o gerador dá suporte a declarações de tipo de valor. |
| DeclareEnums | 256 | Indica que o gerador dá suporte a declarações de enumeração. |
| DeclareDelegates | 512 | Indica que o gerador dá suporte a declarações de delegado. |
| DeclareInterfaces | 1024 | Indica que o gerador dá suporte a declarações de interface. |
| DeclareEvents | 2048 | Indica que o gerador dá suporte a declarações de evento. |
| AssemblyAttributes | 4096 | Indica que o gerador dá suporte a atributos de assembly. |
| ParameterAttributes | 8192 | Indica que o gerador dá suporte a atributos de parâmetro. |
| ReferenceParameters | 16384 | Indica que o gerador dá suporte a parâmetros de referência e saída. |
| ChainedConstructorArguments | 32768 | Indica que o gerador dá suporte a argumentos de construtor encadeados. |
| NestedTypes | 65536 | Indica que o gerador dá suporte à declaração de tipos aninhados. |
| MultipleInterfaceMembers | 131072 | Indica que o gerador dá suporte à declaração de membros que implementam várias interfaces. |
| PublicStaticMembers | 262144 | Indica que o gerador dá suporte a membros estáticos públicos. |
| ComplexExpressions | 524288 | Indica que o gerador dá suporte a expressões complexas. |
| Win32Resources | 1048576 | Indica que o gerador dá suporte à compilação com recursos do Win32. |
| Resources | 2097152 | Indica que o gerador dá suporte à compilação com recursos .NET. Esses podem ser recursos padrão compilados diretamente em um assembly ou recursos referenciados em um assembly satélite. |
| PartialTypes | 4194304 | Indica que o gerador dá suporte a declarações de tipo parcial. |
| GenericTypeReference | 8388608 | Indica que o gerador dá suporte a referências de tipo genérico. |
| GenericTypeDeclaration | 16777216 | Indica que o gerador dá suporte a declarações de tipo genérico. |
| DeclareIndexerProperties | 33554432 | Indica que o gerador dá suporte à declaração de propriedades do indexador. |
Exemplos
O exemplo a seguir ilustra o uso CompilerParameters para especificar várias configurações e opções do 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 (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
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.