通过生成参数验证来修复FxCop CA1062

时间:2013-03-15 07:05:41

标签: c# .net coding-style fxcop ca1062

为一个大项目启用Code anlyisis显示了大量的CA1062游戏,这绝对是正确的IMO。

我想自动处理这些,而不必经历每一个,无论如何,通过使用Assertion对所有方法参数或类似的方法在整个代码中自动执行此操作:

if (input == null)
{
    throw new ArgumentNullException("input");
}

1 个答案:

答案 0 :(得分:1)

是的,有很多方法可以自动添加空检查。除了Bryan Ross已经提到的AOP方法之外,您还可以创建一个工具,根据代码分析报告文件中的违规情况修改源代码。这将更加精细(即:不会对它们可能实际上不属于的地方进行空验证),但是您需要投入一些精力来构建工具来实现它。

也就是说,大量缺失的空检查通常是一个很好的迹象,表明代码库中缺少各种参数验证。如果您想尝试解决所有这些问题,则需要手动操作,并且自动执行空检查可能会隐藏您应该关注的区域。

就个人而言,我倾向于选择更多的手动清理,VS片段用于促进更常见的验证(例如:非空,非空,范围内,允许列表中的枚举)。如果要在清理工作结束(甚至启动)之前启用CA1062规则,http://msmvps.com/blogs/calinoiu/archive/2007/04/22/fxcop-and-the-big-bad-backlog.aspx中描述的“TODO”抑制方法可能会很有用。