[英]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.