簡體   English   中英

如何在DiagnosticAnalyzer和CodeFixProvider中進入工作區? (羅斯林)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM