[英]How are Roslyn syntax rewriters integrated?
我想在现有的 .NET Core 项目中使用 Roslyn 语法重写器。 但是,我不确定如何整合它。 为了分析,我有一个单独的 NuGet 包被项目引用; 这工作得很好。 但是,我找不到有关如何将语法重写器与现有工作流集成的任何文档。
由于这是一个 .NET Core 项目,我目前正在使用 Visual Studio 和dotnet
命令行工具进行编译。 该项目是一个引用 netcoreapp3.0(预览版)的 csproj。 我想集成我的语法重写器,这样每当我在 Visual Studio 中运行dotnet build
或按 F5/F6 时,语法重写器都会运行。 虽然有很多用于构建语法重写器的文档,但似乎没有将其集成到构建过程中的文档。
需要明确的是,这就是我想要做的:
例如,假设我有以下代码:
class A
{
[SomeAttribute]
void Method()
{
}
}
我可以轻松地制作一个语法重写器,以语法树的形式获取此代码,对其进行更改,并生成与以下语法树对应的代码:
class A
{
[SomeAttribute]
[AnotherAttribute]
void Method()
{
SomeCode();
}
}
或者,我可以通过将代码作为字符串输入来生成语法树,并将最终的语法树呈现为字符串。 这很容易。
我找不到说明是自动化这个过程。 我不想每次构建时都手动运行 EXE; 我希望能够将它集成到默认构建过程中,我正在寻找正确的方法来做到这一点。
理想情况下,这还涉及在开发人员编写代码时在 Visual Studio 中实时重写语法树。 这将允许 IntelliSense 对最终的语法树进行操作,而不是开发人员编写的内容。 但是,我不知道这部分是否可以实现。
语法重写器不是构建的一部分。 它们通常用于构建在 Visual Studio 中运行的代码修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.