是否可以编写 C# 源生成器?

Is it possible to compose C# source generators?

提问人:user1576055 提问时间:9/29/2023 更新时间:9/29/2023 访问量:68

问:

我可以有一个基于另一个源代码生成代码的源代码生成器吗?换句话说,我们可以编写源生成器吗?

目前,我正在通过拆分项目来做到这一点。我有ProjectA.csproj,它有FirstSourceGenerator.csproj。然后,我有 ProjectB.csproj(引用 ProjectA.csproj)和 SecondSourceGenerator.csproj。这可行,但我只想有一个项目。

我知道我可以在一轮中生成所有代码。但是我正在利用生成的代码转换为符号这一事实。对我来说,使用符号比使用我自己的结构要容易得多。此外,我在每轮之后都会检查编译器的语法,所以我知道上一轮编译成功了。

C# 源生成器

评论

3赞 Hans Kesting 9/29/2023
设计文档中可以看出,“每个生成器都将看到相同的输入编译,无法访问其他源生成器创建的文件。

答: 暂无答案