Ошибка RS1035 «Символ запрещен к использованию анализаторами» при использовании метода GeneratorExecutionContext.AddSourC#

Место общения программистов C#
Anonymous
Ошибка RS1035 «Символ запрещен к использованию анализаторами» при использовании метода GeneratorExecutionContext.AddSour

Сообщение Anonymous »

Здесь новичок в Roslyn Source Generators.
Я следую документации по Source Generators от Microsoft. Я создал библиотеку классов .NET Standard 2.0 и установил в качестве содержимого файла csproj следующее:

Код: Выделить всё



netstandard2.0


true




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





Теперь, основываясь на примере кода в документации, я создал новый класс с атрибутом [Generator], который соответствует интерфейсу ISourceGenerator:

Код: Выделить всё

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

public void Initialize(GeneratorInitializationContext context)
{
}
}
Но когда я добавляю вызов метода context.AddSource в методе Execute:

Код: Выделить всё

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

public void Initialize(GeneratorInitializationContext context)
{
}
}
затем я вижу эту синтаксическую ошибку при вызове метода context.AddSource:

Код: Выделить всё

RS1035 The symbol 'GeneratorExecutionContext' is banned for use by analyzers: Non-incremental source generators should not be used, implement IIncrementalGenerator instead
Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/791 ... eneratorex

Вернуться в «C#»