CodeDomProvider.GenerateCodeFromCompileUnit Méthode

Définition

Génère du code pour l'unité de compilation CodeDOM (Code Document Object Model) spécifiée et l'envoie au writer de texte spécifié, à l'aide des options définies.

C#
public virtual void GenerateCodeFromCompileUnit (System.CodeDom.CodeCompileUnit compileUnit, System.IO.TextWriter writer, System.CodeDom.Compiler.CodeGeneratorOptions options);

Paramètres

compileUnit
CodeCompileUnit

CodeCompileUnit pour lequel du code doit être généré.

writer
TextWriter

TextWriter auquel le code de sortie est envoyé.

options
CodeGeneratorOptions

CodeGeneratorOptions qui indique les options à utiliser pour générer le code.

Exceptions

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

Exemples

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

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

Remarques

Remarque

Dans les versions 1.0 et 1.1 du .NET Framework, cette méthode est fournie par l’implémentation ICodeGenerator retournée par la CreateGenerator méthode 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 à

Produit Versions
.NET Framework 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

Voir aussi