DiagnosticDescriptor构造函数的新参数的相关性?

时间:2014-06-17 06:40:51

标签: c# .net roslyn

我使用Install-Package Microsoft.CodeAnalysis -Pre来更新我的解决方案的引用,显然现在DiagnosticDescriptor的构造函数现在接受了两个参数。

  1. isEnabledByDefaultbool - 如果默认情况下启用了诊断,则为True
  2. customTagsstring - 诊断的可选自定义标签。有关众所周知的标签,请参阅WellKnownDiagnosticTags
  3. WellKnownDiagnosticTags定义了两个标记UnnecessaryEditAndContinue

    这些在构建DiagnosticDescriptor时有何作用?

1 个答案:

答案 0 :(得分:2)

isEnabledByDefault不言自明:它控制在首次添加分析器引用时是否应启用诊断。这里的场景是你的分析器可能有一堆独立的诊断,但并非所有这些都是你想要在毫无戒心的用户上强加的。

customTags是标记诊断应该被处理或显示与正常诊断略有不同的一般方法。 "不必要的" tag意味着在IDE中我们淡出诊断所适用的范围:这就是我们在IDE中淡出不必要的使用或强制转换的方式。在某些奇特的场景中,您可能希望定义自己的场景,但是在大多数情况下,如果您想要不同的UI处理,您可以将其留空或传递不必要的内容。 EditAndContinue标记用于在无法应用编辑并继续编辑时创建的错误(也会以稍微不同的方式显示)...这仅供我们使用。