CodeDomProvider.GenerateCodeFromCompileUnit Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Generiert Code für die angegebene Code Document Object Model (CodeDOM)-Kompilierungseinheit und sendet ihn mithilfe der angegebenen Optionen an den angegebenen Textschreiber.
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)
Parameter
- compileUnit
- CodeCompileUnit
Eine CodeCompileUnit , für die Code generiert werden soll.
- writer
- TextWriter
Der TextWriter Ausgabecode, an den der Ausgabecode gesendet wird.
- options
- CodeGeneratorOptions
A CodeGeneratorOptions that indicates the options to use for generating code.
Ausnahmen
Weder diese Methode noch die CreateGenerator() Methode wird in einer abgeleiteten Klasse überschrieben.
Beispiele
Das folgende Codebeispiel zeigt die Verwendung der GenerateCodeFromCompileUnit-Methode zum Generieren von Code für eine "Hallo Welt"-Anwendung aus einer CodeCompileUnit. Dieses Beispiel ist Teil eines größeren Beispiels, das für die CodeDomProvider Klasse bereitgestellt wird.
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
Hinweise
Note
In .NET Framework-Versionen 1.0 und 1.1 wird diese Methode von der ICodeGenerator-Implementierung bereitgestellt, die von der CreateGenerator-Methode des Anbieters zurückgegeben wird. In Version 2.0 kann diese Methode direkt für den Codeanbieter aufgerufen werden, auch wenn sie vom Codeanbieter nicht außer Kraft gesetzt wird. Wenn der Codeanbieter diese Methode nicht überschreibt, wird die ICodeGenerator Implementierung von der Basisklasse aufgerufen.
Hinweise für Vererber
Wenn Sie diese Methode außer Kraft setzen, dürfen Sie die entsprechende Methode der Basisklasse nicht aufrufen. Die Basisklassenmethode erstellt einen Generator in der abgeleiteten Klasse mithilfe der veralteten CreateGenerator() Methode zur Kompatibilität mit bereits vorhandenen Anbietern, die Codegeneratoren verwenden. Die Basisklassenmethode ruft dann die entsprechende Methode in der ICodeGenerator Implementierung auf, um diese Funktion auszuführen. Sie erhalten einen NotImplementedException Fall, wenn Sie die Basisklassenmethode von einem Codeanbieter aufrufen, der keinen Codegenerator verwendet.