Как подавить StyleCop, предупреждающий?

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

1) подавление встроенного кода
2) глобальное подавление установки

Я искал Интернет, но все еще не уверенный, как сделать подавление.

Для метода 1), Они сказали для добавления строк:

[блок: SuppressMessage ("Microsoft. Дизайн", "закрытые методы SA1202:All должны быть помещены после всех открытых методов", Объем = "пространство имен", Цель = "Consus. Клиент. ClientVaultModule. Сервисы. OnlineDetection")]

Но они не говорят где и который пространство имен использоваться.

Для метода 2), они сказали для использования файла GlobalSuppress, но кажется не легким искать практическое руководство, делают это в данный момент.

Помогите.

[Отредактированный] В моем случае, у меня есть предупреждение о SA1202: Все закрытые методы должны быть помещены после всех открытых методов, который беспокоится, так как я группирую свои связанные коды в регионы. Я хочу подавить тех, которые предупреждают для просто некоторых определенных методов.

54
задан sorak 8 March 2018 в 11:43
поделиться

5 ответов

Не можете просто удалить правило вместо того, чтобы испортить код?

То же самое и с FxCop ...

4
ответ дан 7 November 2019 в 07:58
поделиться

Пример встроенного подавления будет похож на этот - посмотрите на пространства имен в коде по сравнению с подавлением

namespace Soapi
{
        ///<summary>
        ///</summary>
        ///<param name = "message"></param>
        ///<param name = "statusCode"></param>
        ///<param name = "innerException"></param>
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)")]
        public ApiException(string message, ErrorCode statusCode, Exception innerException)
            : base(String.Format("{0}\r\nStatusCode:{1}", message, statusCode), innerException)
        {
            this.statusCode = statusCode;
        }

Глобальный файл подавления - это файл в корне вашего проекта с именем GlobalSuppressions.cs, который может выглядеть так:

// This file is used by Code Analysis to maintain SuppressMessage 
// attributes that are applied to this project. 
// Project-level suppressions either have no target or are given 
// a specific target and scoped to a namespace, type, member, etc. 
//
// To add a suppression to this file, right-click the message in the 
// Error List, point to "Suppress Message(s)", and click 
// "In Project Suppression File". 
// You do not need to add suppressions to this file manually. 

[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Soapi.ApiException.#.ctor(System.String,Soapi.ErrorCode,System.String,System.Exception)")]

И вы можете сгенерировать этот код автоматически, щелкнув правой кнопкой мыши на предупреждении.

21
ответ дан 7 November 2019 в 07:58
поделиться

Если вы установили StyleCop, вы можете щелкнуть правой кнопкой мыши на своем проекте, и там будет опция StyleCop. Щелкните ее, и вы увидите, что можете предотвратить выполнение определенных правил в вашем проекте. Более того, вы можете создать отдельный файл правил для совместного использования в разных проектах. Это означает, что вы можете один раз настроить правила так, как вам нужно, а затем поделиться этой конфигурацией между всеми вашими проектами.

Для индивидуальных переопределений подойдет SuppressMessage.

7
ответ дан 7 November 2019 в 07:58
поделиться

Вот что вам нужно:

[SuppressMessage("Microsoft.StyleCop.CSharp.OrderingRules", "SA1202:ElementsMustBeOrderedByAccess")]
47
ответ дан 7 November 2019 в 07:58
поделиться

В качестве альтернативы вы можете переместить код из регионов в частичные классы. Тогда проблема с правилом stylecop исчезнет.

1
ответ дан 7 November 2019 в 07:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: