IncrementalGeneratorInitializationContext Struktur

Definisi

Konteks diteruskan ke generator bertahap saat Initialize(IncrementalGeneratorInitializationContext) dipanggil

public readonly struct IncrementalGeneratorInitializationContext
type IncrementalGeneratorInitializationContext = struct
Public Structure IncrementalGeneratorInitializationContext
Warisan
IncrementalGeneratorInitializationContext

Properti

Nama Deskripsi
AdditionalTextsProvider

Mendapatkan yang IncrementalValuesProvider<TValues> menyediakan akses ke semua AdditionalText file yang disertakan dalam kompilasi. Teks tambahan biasanya merupakan file non-kode (seperti .txt, .json, .xml) yang dapat digunakan sebagai input untuk pembuatan sumber. Setiap teks tambahan yang ditambahkan, dihapus, atau dimodifikasi akan memicu nilai baru di penyedia.

AnalyzerConfigOptionsProvider

Mendapatkan yang IncrementalValueProvider<TValue> menyediakan akses ke AnalyzerConfigOptionsProvider untuk kompilasi. Ini dapat digunakan untuk membaca pengaturan .editorconfig dan opsi konfigurasi penganalisis lainnya.

CompilationProvider

Mendapatkan yang IncrementalValueProvider<TValue> menyediakan akses ke yang sedang diproses Compilation . Nilai penyedia ini berubah setiap kali kompilasi berubah (misalnya, file sumber, referensi, atau opsi dimodifikasi).

MetadataReferencesProvider

Mendapatkan yang IncrementalValuesProvider<TValues> menyediakan akses ke semua MetadataReferencedalam kompilasi. Setiap referensi metadata (misalnya, rakitan yang dirujuk) yang ditambahkan, dihapus, atau dimodifikasi akan memicu nilai baru di penyedia.

ParseOptionsProvider

Mendapatkan yang IncrementalValueProvider<TValue> menyediakan akses ke ParseOptions untuk kompilasi. Nilai penyedia ini berubah setiap kali opsi penguraian berubah (misalnya, versi bahasa atau simbol pra-prosesor).

SyntaxProvider

SyntaxValueProvider Mendapatkan yang dapat digunakan untuk membuat simpul input berbasis sintaks untuk alur generator inkremental. Gunakan ini untuk mendaftarkan panggilan balik yang memfilter dan mengubah simpul sintaks dalam kompilasi.

Metode

Nama Deskripsi
RegisterHostOutput<TSource>(IncrementalValueProvider<TSource>, Action<HostOutputProductionContext,TSource>)

Mendaftarkan simpul output yang akan menghasilkan output khusus host yang tidak ditambahkan ke kompilasi. Output host tidak memiliki penggunaan yang ditentukan dan tidak berkontribusi pada kompilasi akhir. Mereka tersedia untuk host (yaitu, lingkungan pengembangan atau sistem build yang menjalankan generator, seperti Visual Studio, build dotnet, dll.) melalui HostOutputs dan terserah host untuk memutuskan cara menggunakannya. Tindakan yang disediakan akan dipanggil dengan nilai dari penyedia setiap kali berubah.

RegisterHostOutput<TSource>(IncrementalValuesProvider<TSource>, Action<HostOutputProductionContext,TSource>)

Mendaftarkan simpul output yang akan menghasilkan output khusus host yang tidak ditambahkan ke kompilasi. Output host tidak memiliki penggunaan yang ditentukan dan tidak berkontribusi pada kompilasi akhir. Mereka tersedia untuk host (yaitu, lingkungan pengembangan atau sistem build yang menjalankan generator, seperti Visual Studio, build dotnet, dll.) melalui HostOutputs dan terserah host untuk memutuskan cara menggunakannya. Tindakan yang disediakan akan dipanggil sekali untuk setiap nilai dari penyedia setiap kali berubah.

RegisterImplementationSourceOutput<TSource>(IncrementalValueProvider<TSource>, Action<SourceProductionContext,TSource>)

Mendaftarkan simpul output yang akan menghasilkan kode sumber implementasi untuk ditambahkan ke kompilasi. Sumber implementasi diperlakukan secara berbeda dari sumber reguler dalam beberapa skenario dan dapat dikecualikan dari output kompilasi tertentu. Tindakan yang disediakan akan dipanggil dengan nilai dari penyedia setiap kali berubah.

RegisterImplementationSourceOutput<TSource>(IncrementalValuesProvider<TSource>, Action<SourceProductionContext,TSource>)

Mendaftarkan simpul output yang akan menghasilkan kode sumber implementasi untuk ditambahkan ke kompilasi. Sumber implementasi diperlakukan secara berbeda dari sumber reguler dalam beberapa skenario dan dapat dikecualikan dari output kompilasi tertentu. Tindakan yang disediakan akan dipanggil sekali untuk setiap nilai dari penyedia setiap kali berubah.

RegisterPostInitializationOutput(Action<IncrementalGeneratorPostInitializationContext>)

Mendaftarkan panggilan balik yang akan dipanggil sekali, sebelum pembuatan sumber lainnya terjadi. Ini biasanya digunakan untuk menambahkan kode sumber yang harus tersedia untuk langkah-langkah pembuatan berikutnya, seperti definisi atribut. Gunakan AddEmbeddedAttributeDefinition() untuk menambahkan EmbeddedAttribute yang menandai jenis yang dihasilkan sebagai internal ke rakitan saat ini.

RegisterSourceOutput<TSource>(IncrementalValueProvider<TSource>, Action<SourceProductionContext,TSource>)

Mendaftarkan simpul output yang akan menghasilkan kode sumber yang akan ditambahkan ke kompilasi. Tindakan yang disediakan akan dipanggil dengan nilai dari penyedia setiap kali berubah.

RegisterSourceOutput<TSource>(IncrementalValuesProvider<TSource>, Action<SourceProductionContext,TSource>)

Mendaftarkan simpul output yang akan menghasilkan kode sumber yang akan ditambahkan ke kompilasi. Tindakan yang disediakan akan dipanggil sekali untuk setiap nilai dari penyedia setiap kali berubah.

Berlaku untuk