[英]Roslyn - CodeFixProvider is being fired but DiagnosticAnalyzer not for class destructor
[英]How to get to Workspace in DiagnosticAnalyzer and CodeFixProvider? (Roslyn)
我想檢查是否將方法(如Logger)的配置添加到appsettings.json
。 如果沒有,那么我想通過代碼修復添加它。
我正在嘗試訪問工作區,以便可以訪問其中的文檔。 但是我找不到找到當前工作空間的方法。
我嘗試使用AdhocWorkspace
但是項目列表為空
var solution = new AdhocWorkspace().CurrentSolution;
在CodeFixProvider
,可以從提供給RegisterCodeFixesAsync
方法的CodeFixContext
中訪問工作區:
public override Task RegisterCodeFixesAsync(CodeFixContext context)
{
var workspace = context.Document.Project.Solution.Workspace;
//...
}
對於DiagnosticAnalyzer
,情況就不同了。 分析器只處理匯編,而不處理特定項目或文檔。 實施診斷分析器時無法到達工作空間,因為分析器需要能夠僅使用命令行編譯器針對單個編譯運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.