Fehler RS1035 „Das Symbol ist für die Verwendung durch Analysegeräte gesperrt“ bei Verwendung der GeneratorExecutionContC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Fehler RS1035 „Das Symbol ist für die Verwendung durch Analysegeräte gesperrt“ bei Verwendung der GeneratorExecutionCont

Post by Anonymous »

Einsteiger in Roslyn Source Generators finden Sie hier.
Ich folge der Dokumentation zu Source Generators von Microsoft. Ich habe eine .NET Standard 2.0-Klassenbibliothek erstellt und Folgendes als Inhalt der csproj-Datei festgelegt:

Code: Select all



netstandard2.0


true




all
runtime; build; native; contentfiles; analyzers; buildtransitive





Jetzt habe ich basierend auf dem Beispielcode in der Dokumentation eine neue Klasse mit dem Attribut [Generator] erstellt, die der ISourceGenerator-Schnittstelle folgt:

Code: Select all

[Generator]
public class Sample : ISourceGenerator
{
public void Execute(GeneratorExecutionContext context)
{
}

public void Initialize(GeneratorInitializationContext context)
{
}
}
Aber wenn ich den Methodenaufruf context.AddSource in der Execute-Methode hinzufüge:

Code: Select all

[Generator]
public class Sample : ISourceGenerator
{
public void Execute(GeneratorExecutionContext context)
{
context.AddSource("Foo.g.cs", "public class Bar { }");
}

public void Initialize(GeneratorInitializationContext context)
{
}
}
dann sehe ich diesen Syntaxfehler beim Aufruf der context.AddSource-Methode:

Code: Select all

RS1035 The symbol 'GeneratorExecutionContext' is banned for use by analyzers: Non-incremental source generators should not be used, implement IIncrementalGenerator instead
Wie kann ich dieses Problem lösen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post