How to ignore compiler warning when using Obsolete attribute on a class used with a KnownType attribute

Use this to disable the corresponding warnings just before the offending line:

#pragma warning disable 612, 618

And reenable the warnings after it:

#pragma warning restore 612, 618

Curiously enough, there're 2 warnings related to this: CS0612 and CS0618 - one is for [Obsolete] and the other for [Obsolete("Message")]. Go figure...


If you want to avoid having to pepper your code with #prgramas, try this:
In your csproj file, find the appropriate PropertyGroup element and add

<WarningsNotAsErrors>612,618</WarningsNotAsErrors>

here's a snippet from one of my project files:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>TRACE;DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <WarningsNotAsErrors>612,618</WarningsNotAsErrors>
    <NoWarn>
    </NoWarn>
    <WarningsAsErrors>
    </WarningsAsErrors>
</PropertyGroup>

I've used this successfully with VS2010, VS2012, and VS2013 projects.


Could you just use a #pragma listing the appropriate warning number?

#pragma warning (C# Reference)

EDIT

Found this but it's a bit late C# - Selectively suppress custom Obsolete warnings