CA1704 - Microsoft, похоже, блокирует слово "Multi"? - программирование

CA1704 - Microsoft, похоже, блокирует слово "Multi"?

public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly

Когда я запускаю Code Analysis, я получаю сообщение об ошибке, потому что 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)

Действительно ли Microsoft блокировала "Multi" от добавления к распознанным словам?

4b9b3361

Ответ 1

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

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

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

Ответ 2

попробуйте добавить это в свой customdictionary

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

Ответ 3

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