CodeDomProvider.GenerateCodeFromCompileUnit Method
Generates code for the specified Code Document Object Model (CodeDOM) compilation unit and sends it to the specified text writer, using the specified options.
Namespace: System.CodeDom.Compiler
Assembly: System (in System.dll)
public virtual void GenerateCodeFromCompileUnit( CodeCompileUnit compileUnit, TextWriter writer, CodeGeneratorOptions options )
Parameters
- compileUnit
- Type: System.CodeDom.CodeCompileUnit
A CodeCompileUnit for which to generate code.
- writer
- Type: System.IO.TextWriter
The TextWriter to which the output code is sent.
- options
- Type: System.CodeDom.Compiler.CodeGeneratorOptions
A CodeGeneratorOptions that indicates the options to use for generating code.
| Exception | Condition |
|---|---|
| NotImplementedException | Neither this method nor the CreateGenerator method is overridden in a derived class. |
Note |
|---|
In the .NET Framework versions 1.0 and 1.1, this method is provided by the ICodeGenerator implementation that is returned by the CreateGenerator method of the provider. In version 2.0, this method can be called directly on the code provider even if it is not overridden by the code provider. If the code provider does not override this method, the ICodeGenerator implementation is called by the base class. |
If you override this method, you must not call the corresponding method of the base class. The base-class method creates a generator in the derived class using the obsolete CreateGenerator method for compatibility with preexisting providers that use code generators. The base-class method then calls the equivalent method in the ICodeGenerator implementation to perform this function. You will get a NotImplementedException if you call the base-class method from a code provider that does not use a code generator.
The following code example shows the use of the GenerateCodeFromCompileUnit method to generate code for a "Hello World" application from a CodeCompileUnit. This example is part of a larger example provided for the CodeDomProvider class.
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(); }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note