public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly
当我运行代码分析时,我收到一个错误,因为Microsoft无法识别“Multi”这个词(他们在IMultiValueConverter
中使用它)。因此,我所做的更正是添加CodeAnalysisDictionary.xml文件并按照提供的步骤here进行操作。但是,它似乎没有解决问题,我仍然收到代码分析警告消息。
为了确保这不是识别的单词部分的错误,我添加了另一个类和另一个例外。
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'被添加到已识别的单词中?
答案 0 :(得分:13)
您可以参考此feedback ticket。这显然是设计出来的。
您看到的行为是因为代码分析附带了一个预定义的自定义词典,该词典在发生冲突时始终会覆盖任何其他自定义词典。在这种情况下,“multi”被列为&lt;未识别的&gt;默认FXCop词典中的单词。
要解决此问题,请打开默认字典%VS安装目录%\ Team Tools \ Static Analysis Tools \ FxCop \ CustomDictionary.xml并注释掉或删除&lt; unrecognized&gt;中的“multi”条目单词部分; “multi”将不再被标记为代码分析中的拼写错误。
答案 1 :(得分:4)
尝试将此添加到您的customdictionary
<Deprecated>
<Term PreferredAlternate="Multi">multi</Term>
</Deprecated>
答案 2 :(得分:0)
您可以添加带有Word首字母缩略词等的XML文件...
添加您的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>