Nous essayons donc de déprécier certaines de nos classes existantes et avons commencé à les marquer comme obsolètes avec ObsoleteAttribute afin qu'elles cessent d'être utilisées. Le fait que l'utilisation de l'attribut KnownType avec un type marqué avec l'attribut obsolète et provoque un avertissement du compilateur est attendu. Cependant, dans notre projet, nous avons des avertissements traités comme des erreurs, donc ignorer l'avertissement n'est pas une option. Existe-t-il une directive de compilation pour supprimer cet avertissement?
L'utilisation suivante provoque un avertissement du compilateur:
///ProductTemplateDataSet is marked with the Obsolete attribute
[KnownType(typeof(ProductTemplateDataSet))]
public class EntityCollectionBase : System.Data.DataSet
{
}
Edit: je comprends l'utilisation des directives du compilateur pour ignorer les erreurs, mais cet avertissement du compilateur n'a pas de nombre.
Utilisez-le pour désactiver les avertissements correspondants juste avant la ligne incriminée:
#pragma warning disable 612, 618
Et réactivez les avertissements après:
#pragma warning restore 612, 618
Curieusement, il y a 2 avertissements liés à cela: CS0612 et CS0618 - l'un est pour [Obsolete]
Et l'autre pour [Obsolete("Message")]
. Allez comprendre...
Si vous voulez éviter d'avoir à poivrer votre code avec #prgrama
s, essayez ceci:
Dans votre fichier csproj, recherchez l'élément PropertyGroup
approprié et ajoutez
<WarningsNotAsErrors>612,618</WarningsNotAsErrors>
voici un extrait d'un de mes fichiers de projet:
<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>
J'ai utilisé cela avec succès avec les projets VS2010, VS2012 et VS2013.
Pourriez-vous simplement utiliser un #pragma
répertorier le numéro d'avertissement approprié?
# avertissement pragma (référence C #)
[~ # ~] modifier [~ # ~]
J'ai trouvé ça mais c'est un peu tard C # - Suppression sélective des avertissements obsolètes personnalisés