2017-01-15 72 views
2

我想知道是否有可能在編譯期間直接訪問C#編譯器使用的C#AST(抽象語法樹)?我知道我可以使用Roslyn API獲得給定項目的AST,但這需要按照我的理解重新編寫和重新編譯源代碼。有沒有辦法直接從Roslyn C#編譯器的AST中受益?

這個想法是爲了改進一個自定義的MSBuild任務(目前使用Visual Studio 2017,dotnet核心),用於分析結果程序的某些屬性。

爲了加速這個過程,以某種方式插入編譯器或至少訪問緩存數據會很棒。

不需要修改AST,所以這只是關於只讀訪問。

+2

你應該寫一個分析器。 – SLaks

+0

請詳細說明一下嗎?這會從任何緩存中受益嗎? – Fionn

+1

分析器作爲編譯過程的一部分運行,使用相同的AST和語義模型。 – SLaks

回答

相關問題