0

我可以通过查找 JSON 文件并使用它来配置源生成器,但是这种方法是有限的并且通常实施起来很慢。

我正在寻找的是消费项目上流利的语法,例如

generator.UseFormat(c)

据我所知,这不存在,但我很乐意被证明不是这样。

我推测的一个 hacky 解决方案是使用另一个源生成器进行流畅配置,然后配置原始源生成器。这可以工作,但会如此复杂,必须有另一种方式。

4

1 回答 1

2

我相信有两个不错的选择:

  • 阅读代码。源生成器可以访问所有代码,并且可以仅检测generator.UseFormat(c)...,但这可能非常困难。你也可以在这里阅读属性,或者阅读常量的值等。这取决于你的需要。

  • 使用 .editorconfig。源生成器可以访问 editorconfig,就像分析器一样。您可以在其中放置格式等设置。这可能是最简单的。(这通过使用工作sourceGeneratorContext.AnalyzerConfigOptions.GetOptions(SyntaxTree)

还有其他选项,例如访问 MSBuild 内容以将配置放入 csproj 和朋友中,但这似乎毫无意义,而且可能很难做到。

于 2021-11-02T12:28:25.803 回答