2013-02-08 4 views
7

Je travaille dans une application et développe quelques classes à des fins de démonstration. Je sais que ces classes seront supprimées à l'avenir.Désactiver tous les avertissements stylecop pour une classe C# spécifique

Est-il possible d'ignorer tous les avertissements stylecop pour ces classes que je ne veux pas passer le temps sur ces avertissements?

J'ai cherché mais j'ai trouvé que je ne peux ignorer via les paramètres dans stylecop (cela affectera d'autres classes aussi) ou à une règle spécifique (je veux juste ignorer tous les avertissements).

+0

Stylecop avertissements ou erreurs? – daryal

Répondre

15

à partir de StyleCop 4.4.0, il est également possible de supprimer toutes les règles dans un espace de noms de règles, en utilisant un seul attribut de suppression. Ceci est indiqué en remplaçant la règle CheckID et le nom de la règle par un seul astérisque. L'exemple de code suivant supprime toutes les règles de documentation par défaut de StyleCop dans la classe interne. Dans ce cas, StyleCop signalerait toujours une violation indiquant que la documentation de la classe externe manquait, mais ignorerait toutes les règles de documentation pour la classe interne et son contenu.

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

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

-1

Vous pouvez supprimer des règles en ajoutant des attributs à des blocs de code. Voici un exemple simple sur une classe du billet de blog lien ci-dessous, mais vous pouvez le faire sur les différents membres individuellement:

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

cela supprimera seulement SA1600. –

18

Vous pouvez duper StyleCop dans pas le traitement d'un fichier tout en ajoutant cet en-tête en haut:

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

Je l'ai fait, mais n'a pas fonctionné. Je peux toujours voir les mêmes avertissements. –

+0

n'est pas là un problème inhérent à l'ajout de quoi que ce soit à un fichier généré automatiquement, cependant? Cela pourrait être remplacé si le code généré est mis à jour. – DevDave

+2

@Tyler: Coller dans un en-tête indiquant que le fichier est autogéré ne le fait pas réellement. – Jon

12

Merci à Bartłomiej Mucha pour la réponse que je viens d'utiliser. Comme je l'ai découvert, le "*" fonctionne bien pour la règle spécifique, mais vous devez ajouter des suppressions pour chaque catégorie. Voici l'ensemble complet - si vous les copiez dans le haut d'une classe, vous devriez constater que toutes les erreurs StyleCop sont supprimées:

[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 
{ 
    // ... 
} 
Questions connexes