Comment puis-je ignorer une règle d'analyse de code VS spécifique (DONNE CA1305: Microsoft.globalization) dans A: P>
(en supposant que ces options sont toutes possibles.) P>
3 Réponses :
Utiliser Vous pouvez mettre le pragma à la portée appropriée dans le fichier source (c'est-à-dire classe, méthode) p>
voir http://msdn.microsoft.com /en-us/library/2c8f766e(vs.80).aspx P> #pragma Avertissement (Supprimer: CXXXX) CODE> P>
#pragma Warning fonctionne pour les avertissements du compilateur. Est-ce que cela fonctionne aussi pour l'analyse de code?
@OREGONGHOST #PRAGMA AVERTISSEMENT (Supprimer) a été introduit spécifiquement pour l'analyse de code TFS.
@JaredPar La question ne mentionne pas FXCop?
@Stu il dit des avertissements d'analyse de code et mentionne une catégorie spécifique par nom (microsoft.globalization)
@Stu: J'ai essayé cela avec #pragma Avertissement (Supprimer: CA1305) code> et aucun succès. Idées?
Du Docs: "Supprimer n'est supporté que pour les avertissements C6000 (avertissements d'analyse de code), qui sont activés avec l'option / analyse (analyse de code d'entreprise) compilateur." Vous pouvez utiliser un avertissement #pragme (désactiver) ou utilisez également l'attribut SuppressMessage car @anthonywjones suggère.
Aussi: si la directive d'avertissement #PRAGMA avec le spécificateur d'avertissement Supprimer ne réduit pas l'avertissement, il se peut que l'avertissement particulier s'applique à l'ensemble de la fonction dans son ensemble, et non à ses déclarations individuelles. Pour supprimer des avertissements de ce type, tels que l'avertissement 28195, placez la directive d'avertissement #PRAGMA sur la ligne précédant immédiatement le premier brace ({) du corps de la fonction.
Vous pouvez utiliser l'attribut SuppleMessage comme celui-ci: -
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", MessageId = "newValue+1", Justification = "The reason I think its acceptable in this case")] void SomeMethod() { // Some code that would normal cause this Code Analysis message }
@Anthonywjones: j'ai essayé [system.diagnostics.codeanalysis.suppressmessage ("microsoft. usage", "CA1305: Microsoft.globalization")]] code> (pour la brièveté) sur une méthode mais toujours l'avertissement affiché . Des idées?
@Alex: essayez de changer la catégorie en "microsoft.globalization", voir: - MSDN .microsoft.com / fr-US / US / Bibliothèque / MS182190.aspx
Vous pouvez essayer d'exécuter FXCop, cliquez avec le bouton droit de la souris sur les erreurs et en choisissant Copier comme suppresseur. Cela devrait vous obtenir le bon texte d'attribut.
Notez que vous devez compiler avec le code_analysis conditionnel alors.
J'ai téléchargé FXCop comme suggéré par le commentaire de @ Truewill sur la réponse de @anthonywjones. Cela m'a donné le Suppressmessage:
[SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)")]
Merci, comment puis-je désactiver Styecop Warnings SA1307 et SA1305?
@Hamish: Je ne sais pas de stylécop. Vous pourriez avoir besoin de poser une nouvelle question pour cela.
D'accord, je l'ai fait ça. Juste au cas où quelqu'un d'autre trouvera cela utile, voici un lien vers la question: Stackoverflow.com/questions/5265154/...
Related: Stackoverflow.com/q/3683729/11410