CodeDomProvider.GenerateCodeFromCompileUnit Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Genera il codice per l'unità di compilazione Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.
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)
Parametri
- compileUnit
- CodeCompileUnit
Oggetto CodeCompileUnit per il quale generare codice.
- writer
- TextWriter
Oggetto TextWriter a cui viene inviato il codice di output.
- options
- CodeGeneratorOptions
Oggetto CodeGeneratorOptions che indica le opzioni da utilizzare per la generazione di codice.
Eccezioni
Né questo metodo né il CreateGenerator() metodo viene sottoposto a override in una classe derivata.
Esempio
Nell'esempio di codice seguente viene illustrato l'uso del metodo GenerateCodeFromCompileUnit per generare codice per un'applicazione "Hello World" da un CodeCompileUnit. Questo esempio fa parte di un esempio più ampio fornito per 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
Commenti
Note
In .NET Framework versioni 1.0 e 1.1, questo metodo viene fornito dall'implementazione
Note per gli eredi
Se si esegue l'override di questo metodo, non è necessario chiamare il metodo corrispondente della classe base. Il metodo della classe base crea un generatore nella classe derivata usando il metodo obsoleto CreateGenerator() per la compatibilità con i provider preesistenti che usano generatori di codice. Il metodo della classe base chiama quindi il metodo equivalente nell'implementazione ICodeGenerator per eseguire questa funzione. Si otterrà un NotImplementedException valore se si chiama il metodo di classe base da un provider di codice che non usa un generatore di codice.