Подтвердить что ты не робот

Отключить StyleCop для определенных строк

Мы используем StyleCop в наших проектах на С#. В некоторых случаях мы хотели бы избежать правил. Я знаю, что вы можете добавить // <auto-generated /> в начало файла, чтобы заставить StyleCop игнорировать его. Однако я не хочу игнорировать правила для всего файла - только блок кода внутри него.

Можно ли отключить StyleCop для определенных строк?

4b9b3361

Ответ 1

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

[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
public class MyUndocumentedClass
{
    public void MyUndocumentedMethod {}
} 

Там быстрый обзор в сообщении блога MSDN и более полное описание атрибутов на MSDN.

Ответ 2

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

[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.SpacingRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.LayoutRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.ReadabilityRules‌​", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.OrderingRules", "*", Justification = "Risky to change manually")]
  • Примечание. Возможно, мне не хватает одной или двух категорий правил.

Ответ 3

Этот парень, похоже, хорошо разбирается в хаке; он предлагает поместить это в верхнюю часть файла, протестированного и работающего с R #

//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// </auto-generated>
//------------------------------------------------------------------------------

Удобно, если вы просто взбиваете нагрузку шаблона, чтобы придерживаться, в основном, не реализованного интерфейса, например.

Ответ 4

Вы можете поместить фрагмент кода между именем региона Generated Code, и он будет пропущен.

Ответ 5

Украсьте свой класс или метод следующим атрибутом StyleCop:

[GeneratedCode("Tool Goes Here", "Message Goes Here")]