web-dev-qa-db-fra.com

C # - Supprimer sélectivement les avertissements obsolètes personnalisés

J'utilise l'attribut Obsolete (comme vient de le suggérer par d'autres programmeurs) pour afficher un avertissement si une certaine méthode est utilisée.

Existe-t-il un moyen de supprimer l'avertissement similaire à SuppressMessage de CodeAnalysis aux endroits où l'utilisation est justifiée?

Merci!

EDIT

Ceci est pour [Obsolete("Some message")] car je dois inclure quelques détails sur l'avertissement. Toutefois, #pragma warning disable 612 _ ne fonctionne plus une fois que j'ai ajouté le message à la personne nue [Obsolete] attribut ...

EDIT 2

Vous avez trouvé le bon numéro d’avertissement - 618 si vous avez un message après l’attribut obsolète.

Donc, pour faire ce que je veux faire:

#pragma warning disable 618

et après l'appel

#pragma warning restore 618

Merci à Jared Par et à Jon Skeet de m'avoir orienté dans la bonne direction!

201
Alex

Utilisation #pragma warning disable:

using System;

class Test
{
    [Obsolete("Message")]
    static void Foo(string x)
    {
    }

    static void Main(string[] args)
    {
#pragma warning disable 0618
        // This one is okay
        Foo("Good");
#pragma warning restore 0618

        // This call is bad
        Foo("Bad");
    }
}

Restaurez ensuite l'avertissement afin de ne pas rater les "mauvais" appels.

244
Jon Skeet

L'objectif consiste à désactiver l'avertissement relatif à une utilisation obsolète , que la construction est marquée avec [Obsolete] ou [Obsolete("Message")]. Donc utilisez les deux CS0612 et CS0618 :

#pragma warning disable 612, 618 

...

#pragma warning restore 612, 618 
123
Jordão

Voici comment obtenir le numéro d'avertissement/erreur en premier lieu:

  1. Reconstruisez votre projet.
  2. Accédez à la fenêtre Sortie.
  3. Recherchez la ligne de l'avertissement/erreur que vous souhaitez supprimer.
    Par exemple:
    C:\Users\Username\Documents\Visual Studio 2010\Projects\Projectname\Classname.cs(203,7): warning CS0162: Unreachable code detected
  4. Copiez la partie numérique après "CS".
  5. Ensuite, procédez comme Jon Skeet dit .

(Mieux toujours procéder comme Jon Skeet dit…)

18
Aaron Thoma

Vous cherchez le #pragma directive de désactivation de l'avertissement

En gros, vous ajoutez la commande suivante au-dessus du site d’appel dans le fichier .cs.

#pragma warning disable 612
SomeMethodCall

612 est l'ID du message d'erreur pour l'appel de méthodes obsolètes

9
JaredPar