CA1704 - Microsoft似乎阻止了"多"一词?


public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly

当我运行代码分析时,我得到一个错误,因为微软不识别"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"被添加到可识别的单词中吗?

您可以参考此反馈单。这显然是有意为之。

您所看到的行为是因为Code Analysis附带了一个预定义的自定义字典,当存在冲突时,它总是覆盖任何其他自定义字典。在这种情况下,"multi"被列为<无法识别的>

在默认的FXCop字典中。

要解决此问题,请打开默认字典%VS安装目录%Team ToolsStatic Analysis ToolsFxCopCustomDictionary.xml,并注释掉或从文字部分;"multi"将不再被标记为代码分析中的拼写错误。

尝试将其添加到您的customdictionary

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

您可以添加一个XML文件与Word首字母缩略词等…

添加xml文件并设置Build Action = CodeAnalysisDictionary

<?xml version="1.0" encoding="utf-8" ?>
<Dictionary>
  <Words>
    <Unrecognized>
      <Word></Word>
    </Unrecognized>
    <Recognized>
      <Word>Multi</Word>
    </Recognized>
    <Deprecated>
      <Term PreferredAlternate=""></Term>
    </Deprecated>
    <Compound>
      <Term CompoundAlternate=""></Term>
    </Compound>
    <DiscreteExceptions>
      <Term>PostDate</Term>
    </DiscreteExceptions>
  </Words>
  <Acronyms>
    <CasingExceptions>
      <Acronym></Acronym> 
    </CasingExceptions>
  </Acronyms>
</Dictionary>

相关内容

  • 没有找到相关文章

最新更新