Question

Lorsque vous utilisez le code d'analyse de Visual Studio (FxCop) et souhaitez supprimer un message, trois options sont disponibles.

  1. Supprimer une violation dans le code.
  2. Supprimer une violation dans un fichier GlobalSupression.cs.
  3. Désactivez le contrôle de violation dans le fichier de projet (via Projet - > Propriétés - > Code Analysic).

Ce dernier point est très difficile à analyser lors de l’enregistrement dans le contrôle de source et il est également difficile d’obtenir une vue d’ensemble des violations désactivées. Nous aimerions donc utiliser l'option 2.

Le problème avec les options 1 et 2 est que vous obtenez une ligne de suppression pour chaque violation. E.g comme:

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace2")]
[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace1")]

Nous aimerions faire quelque chose comme ceci dans GlobalSuppressions.cs:

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes")]

Mais est-ce possible?

Était-ce utile?

La solution

La suppression de plusieurs violations avec un seul attribut SuppressMessage n'est pas officiellement prise en charge. Apparemment, c'est par conception.

Je suis d'accord, cela peut parfois être agaçant, mais je ne peux pas dire que je suis en désaccord avec la décision, car l'attribut est leur façon de vous forcer à dire: "Oui, je sais ce que je fais", ce qui doivent être évalués au cas par cas.

Autres conseils

Je pense que les choses ont changé depuis que cette question a été postée et répondue. Pour Visual Studio 2010 et 2012, vous pouvez créer un "ensemble de règles" personnalisé. fichier dans lequel vous pouvez spécifier les règles d'analyse de code que vous souhaitez supprimer.

http://msdn.microsoft.com/en-us/library/ dd380660.aspx

Mon travail consiste donc à créer un fichier de jeu de règles personnalisé unique, qui se trouve dans le dossier de niveau supérieur de ma collection de sources de référentiel, et je référence ce fichier dans chaque projet Visual Studio. Cela signifie que j'ai un emplacement central où je peux supprimer les règles d'analyse de code que je ne peux tout simplement pas supporter. Mais si je change d'avis ou si je décide de reconsidérer mes mauvaises habitudes de codage, je peux très simplement réactiver la règle et voir le nombre de messages d'analyse de code que je reçois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top