j'ai deux classes qui ont des champs qui ne sont attribuées ou non utilisées par la réflexion. En conséquence, les champs mènent aux avertissements suivants:CS0169 et CS0649 Suppress
CS0169: The field [...] is never used
CS0649: Field [...] is never assigned to, and will always have its default value 0
Une solution serait, d'utiliser le SuppressMessageAttribute sur toutes ces classes, mais cela semble impur, comme les classes appropriées déjà ont un attribut personnalisé.
je préférerais quelque chose comme ceci:
[KeepMyFields]
class SomeClass
{
int usedField;
}
class KeepMyFieldsAttribute : System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
{
// [...]
}
Cependant, SuppressMessageAttribute est scellé. Quelles autres options ai-je, à part ajouter un extrait de code à chaque classe pertinente? Une tâche MSBuild personnalisée peut-elle convenir ou existe-t-il un moyen plus simple?
Voir ici: http://stackoverflow.com/a/3821035/5311735 – Evk
La solution proposée, il est d'ajouter '# pragma' à chaque classe. Cela ne semble pas être une manière propre, pas plus que la conversion de tous les champs en propriétés. –