抑制CS0169和CS0649

时间:2016-06-04 13:01:54

标签: c# code-analysis

我有几个类只有通过反射分配或使用的字段。因此,这些字段会导致以下警告:

CS0169: The field [...] is never used
CS0649: Field [...] is never assigned to, and will always have its default value 0

一个解决方案是,在所有这些类上使用SuppressMessageAttribute,但这似乎是不干净的,因为相关的类已经有了自定义属性。

我更喜欢这样的事情:

[KeepMyFields]
class SomeClass
{
    int usedField;
}

class KeepMyFieldsAttribute : System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
{
    // [...]
}

但是,SuppressMessageAttribute是密封的。除了为每个相关课程添加代码片段外,我还有哪些其他选择?自定义MSBuild任务可能适合,还是有更简单的方法?

1 个答案:

答案 0 :(得分:2)

如果您正在寻找"清洁"解决方案,您可以在项目构建选项中禁止整个项目中此类型的所有警告: enter image description here 当然,这也会隐藏其他类的警告(您可能不想要),但是您可以将所有有问题的类移动到一个单独的项目并将此设置应用于它。