CodeDomProvider.GenerateCodeFromCompileUnit Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.