CA1704 - Microsoft, кажется, блокирует слово "Multi"?
public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly
Когда я запускаю Code Analysis, я получаю сообщение об ошибке, потому что Microsoft не распознает слово "Multi" (поймите, что они используют его в IMultiValueConverter
). Итак, чтобы исправить это, я добавил файл CodeAnalysisDictionary.xml и следовал инструкциям, приведенным здесь. Однако, похоже, это не решает ситуацию, я все еще получаю предупреждение Code Analysis.
Чтобы убедиться, что это не ошибка в разделе распознанных слов, я добавил еще один класс и еще одно исключение.
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)
Microsoft фактически блокировала добавление слова "Multi" к распознанным словам?
2 ответа
Вы можете обратиться к этой обратной связи. Это очевидно по замыслу.
Вы наблюдаете поведение, потому что Code Analysis поставляется с предопределенным пользовательским словарем, который всегда переопределяет любые другие пользовательские словари в случае конфликта. В этом случае слово "multi" указывается в виде слова
в словаре FXCop по умолчанию. Чтобы устранить эту проблему, откройте словарь по умолчанию%VS Install Directory%\Team Tools\Static Analysis Tools\FxCop\CustomDictionary.xml и закомментируйте или удалите "multi" запись из раздела "unrecognized> words"; "multi" больше не будет помечен как орфографическая ошибка в анализе кода.
Попробуйте добавить это к вашему обычному
<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>