c# - tipo - pragma warning
Cómo ignorar la advertencia del compilador cuando se utiliza el atributo Obsoleto en una clase utilizada con un atributo Knowntype (3)
¿Podría simplemente usar un #pragma
con el número de advertencia apropiado?
#pragma warning (C # Reference)
EDITAR
Encontré esto pero es un poco tarde C # - Suprime selectivamente advertencias obsoletas personalizadas
Así que estamos tratando de desaprobar algunas de nuestras clases existentes, y hemos comenzado a marcarlas como obsoletas con ObsoleteAttribute para que dejen de ser utilizadas. Se espera que se use el atributo KnownType con un tipo que está marcado con el atributo Obsoleto y está provocando una advertencia del compilador. Sin embargo, en nuestro proyecto tenemos advertencias tratadas como errores, por lo que ignorar la advertencia no es una opción. ¿Hay una directiva de compilación para suprimir esta advertencia?
El siguiente uso causa una advertencia del compilador:
///ProductTemplateDataSet is marked with the Obsolete attribute
[KnownType(typeof(ProductTemplateDataSet))]
public class EntityCollectionBase : System.Data.DataSet
{
}
Editar: entiendo el uso de las directivas del compilador para ignorar los errores, pero esta advertencia del compilador no tiene un número.
Si quiere evitar tener que rociar su código con #prgrama
s, intente esto:
En su archivo csproj, encuentre el elemento PropertyGroup
apropiado y agregue
<WarningsNotAsErrors>612,618</WarningsNotAsErrors>
Aquí hay un fragmento de uno de mis archivos de proyecto:
<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>
Lo he usado con éxito en los proyectos VS2010, VS2012 y VS2013.
Use esto para desactivar las advertencias correspondientes justo antes de la línea ofensiva:
#pragma warning disable 612, 618
Y vuelva a habilitar las advertencias después de esto:
#pragma warning restore 612, 618
Curiosamente, hay dos advertencias relacionadas con esto: CS0612 y CS0618 : una es para [Obsolete]
y la otra para [Obsolete("Message")]
. Imagínate...