【发布时间】:2021-02-01 16:33:00
【问题描述】:
我正在构建一个分析 C# sn-ps 并提供一些反馈的工具。我用
tree = CSharpSyntaxTree.ParseText(codeSample);
得到一个 SyntaxTree 然后
semanticModel = compilation.GetSemanticModel(tree);
获取 SemanticModel。
我可以使用 semanticModel.Compilation.GetDiagnostics(); 在代码中找到语法错误,但我知道 Roslyn 也可以使用 Roslyn Analyzers 执行许多代码质量规则(here 和 here)。
我的问题是:如何以编程方式获取代码中的那些代码风格问题,就像我可以获取语法错误一样?
【问题讨论】:
-
你是如何创建你的编译的?
-
@PauloMorgado 像这样: var compilation = CSharpCompilation.Create("assemblyName") .AddReferences( MetadataReference.CreateFromFile( typeof(object).Assembly.Location)) .AddSyntaxTrees(tree);
-
目前无法测试,但有
WitAnalyzers方法。找不到吗? -
谢谢。我设法让它工作。我会添加一个答案。
标签: coding-style roslyn code-analysis programmatically