Отключить StyleCop для определенных строк - PullRequest
36 голосов
/ 18 ноября 2009

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

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

Ответы [ 5 ]

36 голосов
/ 18 ноября 2009

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

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

В блоге MSDN есть краткий обзор и более полное описание атрибутов в MSDN .

12 голосов
/ 23 мая 2011

Старый вопрос, который я знаю, но, ища ответ, я обнаружил, что в 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")]
  • Примечание. Возможно, мне не хватает одной или двух категорий правил
7 голосов
/ 20 ноября 2013

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

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

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

0 голосов
/ 12 апреля 2017

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

[GeneratedCode("Tool Goes Here", "Message Goes Here")]
0 голосов
/ 26 января 2017

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

...