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