1

我想检查一个 Method (Like Logger) 的配置是否被添加到appsettings.json. 如果没有,那么我想通过 Code Fix 添加它。

我正在尝试访问工作区,以便可以访问其中的文档。但我找不到获取当前工作区的方法。

我尝试使用AdhocWorkspace但项目列表为空

var solution = new AdhocWorkspace().CurrentSolution;
4

1 回答 1

2

在 aCodeFixProvider中,您可以从CodeFixContext提供给RegisterCodeFixesAsync方法的 访问工作区:

public override Task RegisterCodeFixesAsync(CodeFixContext context)
{
    var workspace = context.Document.Project.Solution.Workspace;
    //...
}

对于 a 来说DiagnosticAnalyzer,这是一个不同的故事。分析器使用编译,而不是特定的项目或文档。实现诊断分析器时无法访问工作区,因为分析器需要能够仅使用命令行编译器针对单个编译运行。

于 2019-08-22T17:07:01.440 回答