Freigeben über


IncrementalGeneratorInitializationContext Struktur

Definition

Kontext, der an einen inkrementellen Generator übergeben wird, wenn Initialize(IncrementalGeneratorInitializationContext) er aufgerufen wird

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

Eigenschaften

Name Beschreibung
AdditionalTextsProvider

Ruft einen IncrementalValuesProvider<TValues> , der Zugriff auf alle AdditionalText Dateien bietet, die in der Kompilierung enthalten sind. Zusätzliche Texte sind in der Regel Nicht-Code-Dateien (z. B. .txt, .json, .xml), die als Eingabe für die Quellgenerierung verwendet werden können. Jeder zusätzliche Text, der hinzugefügt, entfernt oder geändert wird, löst einen neuen Wert im Anbieter aus.

AnalyzerConfigOptionsProvider

Ruft einen IncrementalValueProvider<TValue> , der Zugriff auf die AnalyzerConfigOptionsProvider Kompilierung ermöglicht. Dies kann verwendet werden, um die .editorconfig-Einstellungen und andere Konfigurationsoptionen der Analyse zu lesen.

CompilationProvider

Ruft einen IncrementalValueProvider<TValue> , der Zugriff auf den Compilation verarbeiteten Vorgang ermöglicht. Der Wert dieses Anbieters ändert sich, wenn sich die Kompilierung ändert (z. B. Quelldateien, Verweise oder Optionen werden geändert).

MetadataReferencesProvider

Ruft einen IncrementalValuesProvider<TValues> , der Zugriff auf alle MetadataReferences in der Kompilierung bietet. Jeder Metadatenverweis (z. B. referenzierte Assemblys), der hinzugefügt, entfernt oder geändert wird, löst einen neuen Wert im Anbieter aus.

ParseOptionsProvider

Ruft einen IncrementalValueProvider<TValue> , der Zugriff auf die ParseOptions Kompilierung ermöglicht. Der Wert dieses Anbieters ändert sich, wenn sich die Analyseoptionen ändern (z. B. Sprachversions- oder Präprozessorsymbole).

SyntaxProvider

Ruft ein SyntaxValueProvider , das verwendet werden kann, um syntaxbasierte Eingabeknoten für die inkrementelle Generatorpipeline zu erstellen. Verwenden Sie dies, um Rückrufe zu registrieren, die Syntaxknoten in der Kompilierung filtern und transformieren.

Methoden

Name Beschreibung
RegisterHostOutput<TSource>(IncrementalValueProvider<TSource>, Action<HostOutputProductionContext,TSource>)

Registriert einen Ausgabeknoten, der hostspezifische Ausgaben erzeugt, die der Kompilierung nicht hinzugefügt werden. Hostausgaben haben keine definierte Verwendung und tragen nicht zur endgültigen Kompilierung bei. Sie werden dem Host (d. h. der Entwicklungsumgebung oder dem Buildsystem, auf dem der Generator ausgeführt wird, wie z. B. Visual Studio, dotnet build usw.) HostOutputs zur Verfügung gestellt, und es liegt an dem Host, zu entscheiden, wie sie verwendet werden sollen. Die bereitgestellte Aktion wird immer dann mit dem Wert des Anbieters aufgerufen, wenn sie geändert wird.

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

Registriert einen Ausgabeknoten, der hostspezifische Ausgaben erzeugt, die der Kompilierung nicht hinzugefügt werden. Hostausgaben haben keine definierte Verwendung und tragen nicht zur endgültigen Kompilierung bei. Sie werden dem Host (d. h. der Entwicklungsumgebung oder dem Buildsystem, auf dem der Generator ausgeführt wird, wie z. B. Visual Studio, dotnet build usw.) HostOutputs zur Verfügung gestellt, und es liegt an dem Host, zu entscheiden, wie sie verwendet werden sollen. Die bereitgestellte Aktion wird einmal für jeden Wert des Anbieters aufgerufen, wenn sie sich ändern.

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

Registriert einen Ausgabeknoten, der den Implementierungsquellcode erzeugt, der der Kompilierung hinzugefügt werden soll. Implementierungsquellen werden in einigen Szenarien anders behandelt als normale Quellen und können von bestimmten Kompilierungsausgaben ausgeschlossen werden. Die bereitgestellte Aktion wird immer dann mit dem Wert des Anbieters aufgerufen, wenn sie geändert wird.

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

Registriert einen Ausgabeknoten, der den Implementierungsquellcode erzeugt, der der Kompilierung hinzugefügt werden soll. Implementierungsquellen werden in einigen Szenarien anders behandelt als normale Quellen und können von bestimmten Kompilierungsausgaben ausgeschlossen werden. Die bereitgestellte Aktion wird einmal für jeden Wert des Anbieters aufgerufen, wenn sie sich ändern.

RegisterPostInitializationOutput(Action<IncrementalGeneratorPostInitializationContext>)

Registriert einen Rückruf, der einmal aufgerufen wird, bevor eine andere Quellgenerierung auftritt. Dies wird in der Regel verwendet, um Quellcode hinzuzufügen, der für nachfolgende Generierungsschritte verfügbar sein sollte, z. B. Attributdefinitionen. Wird verwendet AddEmbeddedAttributeDefinition() , um das EmbeddedAttribute hinzuzufügen, das generierte Typen als intern in der aktuellen Assembly kennzeichnet.

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

Registriert einen Ausgabeknoten, der Quellcode erzeugt, der der Kompilierung hinzugefügt werden soll. Die bereitgestellte Aktion wird immer dann mit dem Wert des Anbieters aufgerufen, wenn sie geändert wird.

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

Registriert einen Ausgabeknoten, der Quellcode erzeugt, der der Kompilierung hinzugefügt werden soll. Die bereitgestellte Aktion wird einmal für jeden Wert des Anbieters aufgerufen, wenn sie sich ändern.

Gilt für: