2013-02-08 28 views
7

Pracuję w aplikacji i rozwijam kilka klas dla celów demonstracyjnych. Wiem, że te zajęcia zostaną usunięte w przyszłości.Wyłącz wszystkie ostrzeżenia stylecop dla określonej klasy C#

Czy można zignorować wszystkie ostrzeżenia stylecop dotyczące tych zajęć, ponieważ nie chcę spędzać czasu na tych ostrzeżeniach?

Szukałem, ale stwierdziłem, że mogę zignorować tylko poprzez ustawienia w stylecop (to też wpłynie na inne klasy) lub na określoną regułę (po prostu chcę zignorować wszystkie ostrzeżenia).

+0

StyleCop ostrzeżenia lub błędy? – daryal

Odpowiedz

15

Począwszy StyleCop 4.4.0, możliwe jest również, aby tłumić wszystkie zasady w przestrzeni nazw reguł, za pomocą jednego atrybutu tłumienia. Jest to sygnalizowane przez zastąpienie reguły CheckID i nazwy reguły pojedynczą gwiazdką. Poniższy przykład kodu tłumi wszystkie domyślne reguły dokumentacji StyleCop w wewnętrznej klasie. W takim przypadku StyleCop będzie nadal oznaczać naruszenie wskazujące, że w klasie zewnętrznej brakuje dokumentacji, ale zignorowałoby to wszystkie reguły dotyczące dokumentacji dla klasy wewnętrznej i jej zawartości.

public class OuterClass 
{ 
    [SuppressMessage("StyleCop.CSharp.DocumentationRules", "*")] 
    public class InnerClass 
    { 
     public void MyUndocumentedMethod 
     { 
     } 
    } 
} 

http://stylecop.soyuz5.com/Suppressions.html

-1

Można ukryć reguły, dodając atrybuty do bloków kodu. Oto prosty przykład w klasie z blogu połączonego poniżej, ale można to zrobić na różnych członków indywidualnie:

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

to tylko tłumi SA1600. –

18

Można oszukać StyleCop się nie przetwarza plik w ogóle dodając ten nagłówek u góry:

//------------------------------------------------------------------------------ 
// <auto-generated> 
// Well, not really. This is just a trick to get StyleCop off my back. 
// </auto-generated> 
//------------------------------------------------------------------------------ 
+0

Zrobiłem to, ale nie zadziałało. Nadal widzę te same ostrzeżenia. –

+0

nie jest jednak nieunikniony problem z dodaniem czegokolwiek do pliku generowanego automatycznie? Można to zastąpić, jeśli wygenerowany kod zostanie zaktualizowany – DevDave

+2

@ Tyler: Wklejenie w nagłówku informującym, że plik jest autogenowany, tak naprawdę nie czyni tego. – Jon

12

Podziękowania dla Bartłomieja Muchy za odpowiedź, której właśnie użyłem. Jak odkryłem, "*" działa dobrze dla konkretnej reguły, ale musisz dodać tłumienia dla każdej kategorii. Oto komplet - jeśli skopiować je do góry klasy, należy stwierdzić, że wszystkie błędy StyleCop są tłumione:

[SuppressMessage("StyleCop.CSharp.NamingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.LayoutRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.OrderingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.SpacingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
internal class MyClass 
{ 
    // ... 
} 
Powiązane problemy