CA1704 - 微软似乎阻止了“Multi”这个词?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (4)
public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly

当我运行代码分析时,我收到一个错误,因为Microsoft不识别“Multi”这个词(他们使用它的数字IMultiValueConverter)。因此,我所做的是更正CodeAnalysisDictionary.xml文件,并按照此处提供的步骤操作。但是,它似乎没有解决问题,我仍然收到代码分析警告消息。

为了确保这不是识别的单词部分的错误,我添加了另一个类和另一个异常。

public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly
public class MutiiSomething { } //NO WARNING

<Dictionary>
  <Words>
    <Recognized>
      <Word>Multi</Word> <-- This seems to not do anything... -->
      <Word>Mutii</Word> <-- This actually does something... -->
    </Recognized>
  </Words>
</Dictionary>

修复它的另一种方法是使用SuppressMessage,虽然如果我打算在整个地方使用这个词,这不是一个很好的解决方案。

[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Multi")]
public class MultiSomething { } //NO WARNING (Suppressed)

微软是否真的阻止'Multi'被添加到已识别的单词中?

提问于
用户回答回答于

您可以参考此反馈票。这显然是设计上的。

您看到的行为是因为代码分析附带了一个预定义的自定义词典,该词典在发生冲突时始终覆盖任何其他自定义词典。在这种情况下,“multi”在默认的FXCop字典中列为<无法识别的>字。 要解决此问题,请打开默认字典%VS安装目录%\ Team Tools \ Static Analysis Tools \ FxCop \ CustomDictionary.xml并注释掉<unrecognized> words部分中的“multi”条目; “multi”将不再被标记为Code Analysis中的拼写错误。

用户回答回答于

尝试将此添加到您的customdictionary

<Deprecated>
  <Term PreferredAlternate="Multi">multi</Term>
</Deprecated>

扫码关注云+社区

领取腾讯云代金券