CodeDomProvider.GenerateCodeFromCompileUnit Método

Definición

Genera código para la unidad de compilación Code Document Object Model (CodeDOM) especificada y la envía al escritor de texto especificado mediante las opciones especificadas.

public:
 virtual void GenerateCodeFromCompileUnit(System::CodeDom::CodeCompileUnit ^ compileUnit, System::IO::TextWriter ^ writer, System::CodeDom::Compiler::CodeGeneratorOptions ^ options);
public virtual void GenerateCodeFromCompileUnit(System.CodeDom.CodeCompileUnit compileUnit, System.IO.TextWriter writer, System.CodeDom.Compiler.CodeGeneratorOptions options);
abstract member GenerateCodeFromCompileUnit : System.CodeDom.CodeCompileUnit * System.IO.TextWriter * System.CodeDom.Compiler.CodeGeneratorOptions -> unit
override this.GenerateCodeFromCompileUnit : System.CodeDom.CodeCompileUnit * System.IO.TextWriter * System.CodeDom.Compiler.CodeGeneratorOptions -> unit
Public Overridable Sub GenerateCodeFromCompileUnit (compileUnit As CodeCompileUnit, writer As TextWriter, options As CodeGeneratorOptions)

Parámetros

compileUnit
CodeCompileUnit

CodeCompileUnit para el que se va a generar código.

writer
TextWriter

TextWriter al que se envía el código de salida.

options
CodeGeneratorOptions

que CodeGeneratorOptions indica las opciones que se van a usar para generar código.

Excepciones

Ni este método ni el CreateGenerator() método se invalidan en una clase derivada.

Ejemplos

En el ejemplo de código siguiente se muestra el uso del método GenerateCodeFromCompileUnit para generar código para una aplicación de "Hola mundo" desde una CodeCompileUnit. Este ejemplo forma parte de un ejemplo más grande proporcionado para la CodeDomProvider clase .

public static void GenerateCode(CodeDomProvider provider,
    CodeCompileUnit compileunit)
{
    // Build the source file name with the appropriate
    // language extension.
    String sourceFile;
    if (provider.FileExtension[0] == '.')
    {
        sourceFile = "TestGraph" + provider.FileExtension;
    }
    else
    {
        sourceFile = "TestGraph." + provider.FileExtension;
    }

    // Create an IndentedTextWriter, constructed with
    // a StreamWriter to the source file.
    IndentedTextWriter tw = new IndentedTextWriter(new StreamWriter(sourceFile, false), "    ");
    // Generate source code using the code generator.
    provider.GenerateCodeFromCompileUnit(compileunit, tw, new CodeGeneratorOptions());
    // Close the output file.
    tw.Close();
}
Public Shared Sub GenerateCode(ByVal provider As CodeDomProvider, ByVal compileunit As CodeCompileUnit)

    ' Build the source file name with the appropriate
    ' language extension.
    Dim sourceFile As String
    If provider.FileExtension.StartsWith(".") Then
        sourceFile = "TestGraph" + provider.FileExtension
    Else
        sourceFile = "TestGraph." + provider.FileExtension
    End If

    ' Create an IndentedTextWriter, constructed with
    ' a StreamWriter to the source file.
    Dim tw As New IndentedTextWriter(New StreamWriter(sourceFile, False), "    ")
    ' Generate source code using the code generator.
    provider.GenerateCodeFromCompileUnit(compileunit, tw, New CodeGeneratorOptions())
    ' Close the output file.
    tw.Close()
End Sub

Comentarios

Note

En .NET Framework versiones 1.0 y 1.1, este método lo proporciona la implementación de ICodeGenerator que devuelve el método CreateGenerator del proveedor. En la versión 2.0, se puede llamar a este método directamente en el proveedor de código aunque el proveedor de código no lo invalide. Si el proveedor de código no invalida este método, la clase base llama a la ICodeGenerator implementación.

Notas a los desarrolladores de herederos

Si invalida este método, no debe llamar al método correspondiente de la clase base. El método de clase base crea un generador en la clase derivada mediante el método obsoleto CreateGenerator() para la compatibilidad con proveedores preexistentes que usan generadores de código. A continuación, el método de clase base llama al método equivalente de la ICodeGenerator implementación para realizar esta función. Obtendrá un NotImplementedException si llama al método de clase base desde un proveedor de código que no usa un generador de código.

Se aplica a

Consulte también