Как предотвратить предупреждение StyleCop о венгерской нотации, когда префикс действителен

У меня есть следующий код:

var fxRate = new FxRate();

который дает мне следующее предупреждение StyleCop ReSharper:

Имя переменной "fxRate" начинается с префикса, который похож на венгерскую нотацию.

Я попытался скопировать файл Settings.StyleCop в папку решения и добавить запись для fx:

  <Analyzers>
    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
      <AnalyzerSettings>
        <CollectionProperty Name="Hungarian">
          ...
          <Value>fx</Value>
          ...

Я перезапустил VS, но я все равно получаю такое же предупреждение. Я использую расширение StyleCop ReSharper в VS2017.

Как я могу убедиться, что "fx" является допустимым префиксом в решении (для всех членов команды)?

Ответ 1

Я обновил ReSharper до 2018.2.1 и теперь значения в файле:

 <CollectionProperty Name="Hungarian">
          ...
          <Value>fx</Value>
          ...

успешно распознаются. Это заставляет предупреждение уйти.

Я не уверен, было ли это само обновление или что-то вроде очистки кеша.

Ответ 2

Я использую VisualStudio 2017 с ReSharper 2018.2 и соответствующим StyleCop расширением JetBrains (Версия 2018.2.0 - StyleCop.ReSharper.dll 5.0.6329.1)


В наших проектах я добавил файл Settings.StyleCop в папку решений рядом с файлом решения. Чтобы проверить ваш префикс, я добавил fx в свой файл настроек, и он работал из коробки.

Мой файл содержит следующее правило анализатора.

<Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
    <Rules>
        <Rule Name="FieldNamesMustNotUseHungarianNotation">
          <RuleSettings>
            <BooleanProperty Name="Enabled">True</BooleanProperty>
          </RuleSettings>
        </Rule>
    </Rules>
    <AnalyzerSettings>
        <CollectionProperty Name="Hungarian">
            ...             
            <Value>fx</Value>
            ..                
        </CollectionProperty>      
   </AnalyzerSettings>

И моя конфигурация Resharper выглядит так:

StyleCop Configuration


Как обеспечить, чтобы "fx" был допустимым префиксом в решении для всех членов команды)?

В наших проектах мы всегда проверяем файл настроек StyleCop, поэтому мы гарантируем, что все участники используют правильный, и мы можем сохранить его актуальным для всех.


В дополнение к плагину ReSharper вы также можете использовать пакет StyleCop, найденный в магазине NuGet, и добавить его в свое решение:

StyleCop - NugetPackage

Команда StyleCop рекомендует использовать StyleCopAnalyzers над расширением StyleCop при использовании VisualStudio 2015 и более поздних версий.