Как игнорировать предупреждение компилятора при использовании устаревшего атрибута в классе, используемом с атрибутом Knowntype
Поэтому мы пытаемся объявить устаревшими некоторые из существующих классов и начали помечать их как устаревшие с помощью атрибута ObsoleteAttribute, чтобы они перестали использоваться. Ожидается тот факт, что использование атрибута KnownType с типом, который помечен атрибутом "Устарел" и вызывает предупреждение компилятора. Однако в нашем проекте предупреждения рассматриваются как ошибки, поэтому игнорирование предупреждения невозможно. Существует ли директива компилятора для подавления этого предупреждения?
Следующее использование вызывает предупреждение компилятора:
///ProductTemplateDataSet is marked with the Obsolete attribute
[KnownType(typeof(ProductTemplateDataSet))]
public class EntityCollectionBase : System.Data.DataSet
{
}
Изменить: я понимаю, с помощью директив компилятора игнорировать ошибки, но это предупреждение компилятора не имеет номера.
3 ответа
Используйте это, чтобы отключить соответствующие предупреждения непосредственно перед ошибочной строкой:
#pragma warning disable 612, 618
И включите предупреждения после этого:
#pragma warning restore 612, 618
Как ни странно, есть два предупреждения, связанных с этим: CS0612 и CS0618 - одно для [Obsolete]
а другой для [Obsolete("Message")]
, Пойди разберись...
Если вы хотите избежать того, чтобы ваш код #prgrama
s, попробуйте это:
В вашем файле csproj найдите соответствующий PropertyGroup
элемент и добавить
<WarningsNotAsErrors>612,618</WarningsNotAsErrors>
вот фрагмент из одного из моих файлов проекта:
<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>
Я успешно использовал это в проектах VS2010, VS2012 и VS2013.
Не могли бы вы просто использовать #pragma
перечислить соответствующий номер предупреждения?
#pragma warning (C# Reference)
РЕДАКТИРОВАТЬ
Нашел это, но уже немного поздно C# - выборочно подавить пользовательские устаревшие предупреждения