C# – Selectively suppress custom Obsolete warnings


I'm using the Obsolete attribute (as just suggested by fellow programmers) to show a warning if a certain method is used.

Is there a way to suppress the warning similar to CodeAnalysis' SuppressMessage at points where the use is justified?

This needs to work for [Obsolete("Some message")] which generates warning 618 and the plain [Obsolete] attribute with no message which generates warning 612.

Best Solution

Use #pragma warning disable:

using System;

class Test
    static void Foo(string x)

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

        // This call is bad

Restore the warning afterwards so that you won't miss "bad" calls.

Related Question