【发布时间】:2020-01-03 14:32:20
【问题描述】:
我编写了代码分析器和修复提供程序,用于添加验证以确保参数不为空。它适用于多种方法,但我无法一次检查所有参数。分析仪会标记所有尚未检查的参数,但一次只能对一个参数进行修复。
详情: 这不是不可变节点问题,如果需要,代码会添加 using 语句。
在分析器中,我为每个参数注册诊断。
Diagnostic diagnostic = Diagnostic.Create(
Rule,
parameter.GetLocation(),
null,
prop.ToImmutableDictionary(),
parameter.Identifier.Text);
在修复提供程序中,我首先从上下文中进行诊断并为此注册代码修复。
也许我做错了什么,因此在修复提供程序中没有得到多个诊断。
进行多次修复的正确方法是什么?诊断的密钥/ID应该相同吗?或者是否应该直接注册诊断以抱怨所有参数。
【问题讨论】:
-
您可以为同一个诊断注册多个修复程序。
-
@PauloMorgado 非常感谢,我认为这也会有所帮助,但在我的情况下,额外的诊断就足够了。我最初认为批处理修复程序与它有关。
-
你可以同时拥有。分析器报告的多个诊断和/或每个诊断的多个修复。
标签: roslyn roslyn-code-analysis codefixprovider