CodeDomProvider.GenerateCodeFromCompileUnit Méthode

Définition

Génère du code pour l’unité de compilation Code Document Object Model (CodeDOM) spécifiée et l’envoie à l’enregistreur de texte spécifié, à l’aide des options spécifiées.

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)

Paramètres

compileUnit
CodeCompileUnit

Pour CodeCompileUnit lequel générer du code.

writer
TextWriter

TextWriter Auquel le code de sortie est envoyé.

options
CodeGeneratorOptions

Qui CodeGeneratorOptions indique les options à utiliser pour générer du code.

Exceptions

Ni cette méthode ni la CreateGenerator() méthode ne sont remplacées dans une classe dérivée.

Exemples

L’exemple de code suivant montre l’utilisation de la méthode GenerateCodeFromCompileUnit pour générer du code pour une application « Hello World » à partir d’un CodeCompileUnit. Cet exemple fait partie d’un exemple plus large fourni pour la CodeDomProvider classe.

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

Remarques

Note

Dans .NET Framework versions 1.0 et 1.1, cette méthode est fournie par l’implémentation ICodeGenerator retournée par la méthode CreateGenerator du fournisseur. Dans la version 2.0, cette méthode peut être appelée directement sur le fournisseur de code, même si elle n’est pas remplacée par le fournisseur de code. Si le fournisseur de code ne remplace pas cette méthode, l’implémentation ICodeGenerator est appelée par la classe de base.

Notes pour les héritiers

Si vous remplacez cette méthode, vous ne devez pas appeler la méthode correspondante de la classe de base. La méthode de classe de base crée un générateur dans la classe dérivée à l’aide de la méthode obsolète CreateGenerator() pour la compatibilité avec les fournisseurs préexistants qui utilisent des générateurs de code. La méthode de classe de base appelle ensuite la méthode équivalente dans l’implémentation ICodeGenerator pour effectuer cette fonction. Vous obtiendrez un NotImplementedException si vous appelez la méthode de classe de base à partir d’un fournisseur de code qui n’utilise pas de générateur de code.

S’applique à

Voir aussi