Aracılığıyla paylaş


CodeDomProvider.GenerateCodeFromCompileUnit Yöntem

Tanım

Belirtilen Kod Belgesi Nesne Modeli (CodeDOM) derleme birimi için kod oluşturur ve belirtilen seçenekleri kullanarak bunu belirtilen metin yazıcıya gönderir.

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)

Parametreler

compileUnit
CodeCompileUnit

CodeCompileUnit Kodun oluşturulacağı A.

writer
TextWriter

TextWriter Çıkış kodunun gönderildiği.

options
CodeGeneratorOptions

CodeGeneratorOptions Kod oluşturmak için kullanılacak seçenekleri gösteren bir.

Özel durumlar

Türetilmiş bir sınıfta bu yöntem veya CreateGenerator() yöntem geçersiz kılınmaz.

Örnekler

Aşağıdaki kod örneği, bir 'den "Merhaba Dünya" uygulaması için kod oluşturmak için yönteminin CodeCompileUnitkullanımını GenerateCodeFromCompileUnit gösterir. Bu örnek, sınıfı için CodeDomProvider sağlanan daha büyük bir örneğin parçasıdır.

static void GenerateCode( CodeDomProvider^ provider, CodeCompileUnit^ compileunit )
{
    // Build the source file name with the appropriate
    // language extension.
    String^ sourceFile;
    if ( provider->FileExtension->StartsWith( "." ) )
    {
        sourceFile = String::Concat( "TestGraph", provider->FileExtension );
    }
    else
    {
        sourceFile = String::Concat( "TestGraph.", provider->FileExtension );
    }

    // Create an IndentedTextWriter, constructed with
    // a StreamWriter to the source file.
    IndentedTextWriter^ tw = gcnew IndentedTextWriter( gcnew StreamWriter( sourceFile,false ),"    " );

    // Generate source code using the code generator.
    provider->GenerateCodeFromCompileUnit( compileunit, tw, gcnew CodeGeneratorOptions );

    // Close the output file.
    tw->Close();
}
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

Açıklamalar

Not

.NET Framework 1.0 ve 1.1 sürümlerinde, bu yöntem sağlayıcının ICodeGenerator yöntemi tarafından döndürülen uygulama tarafından CreateGenerator sağlanır. Sürüm 2.0'da bu yöntem, kod sağlayıcısı tarafından geçersiz kılınmasa bile doğrudan kod sağlayıcısında çağrılabilir. Kod sağlayıcısı bu yöntemi geçersiz kılmazsa, ICodeGenerator uygulama temel sınıf tarafından çağrılır.

Devralanlara Notlar

Bu yöntemi geçersiz kılarsanız, temel sınıfın ilgili yöntemini çağırmamalısınız. Temel sınıf yöntemi, kod oluşturucuları kullanan önceden var olan sağlayıcılarla uyumluluk için eski CreateGenerator() yöntemini kullanarak türetilmiş sınıfta bir oluşturucu oluşturur. Temel sınıf yöntemi daha sonra bu işlevi gerçekleştirmek için uygulamadaki ICodeGenerator eşdeğer yöntemi çağırır. Kod oluşturucu kullanmayan bir NotImplementedException kod sağlayıcısından temel sınıf yöntemini çağırırsanız bir alırsınız.

Şunlara uygulanır

Ayrıca bkz.