CA1704 - Microsoft, кажется, блокирует слово «Multi»? - PullRequest
11 голосов
/ 21 октября 2011
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» к распознанным словам?

Ответы [ 3 ]

13 голосов
/ 21 октября 2011

Вы можете сослаться на этот тикет обратной связи .По-видимому, это сделано специально.

Поведение, которое вы видите, заключается в том, что Code Analysis поставляется с предопределенным пользовательским словарем, который всегда переопределяет любые другие пользовательские словари в случае конфликта.В этом случае «multi» указывается как слово в словаре FXCop по умолчанию.

Чтобы устранить эту проблему, откройте словарь по умолчанию% VS Install Directory% \ Team Tools \ Static Analysis Tools \ FxCop \CustomDictionary.xml и закомментируйте или удалите запись «multi» из раздела words;«multi» больше не будет помечен как орфографическая ошибка в анализе кода.

4 голосов
/ 25 августа 2017

попробуйте добавить это к своему обычному

<Deprecated>
  <Term PreferredAlternate="Multi">multi</Term>
</Deprecated>
0 голосов
/ 25 июня 2019

Вы можете добавить 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>
...