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 #prgrama
s, 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