我可以告诉NDepend忽略一个结果吗?

时间:2013-12-07 22:30:19

标签: visual-studio-2012 ndepend

我正在VS 2012中针对我的C#项目运行NDepend。我看到了一个特定的“严重违反规则”,并决定我要保持原样。我想告诉NDepend忽略这一违规行为并且不计入我的关键规则违规计数,这样我就可以让底部的点不再是红色。

如果重要:它是“具有太多参数的功能”。函数的目的是在数据库表中创建一个日志条目,我需要传入所有值(其中11个)来填充表(在对它们应用一些逻辑之后)。我想我可以将所有值放入一个结构或类中,并将其作为单个值传递,但结构/类没有其他用途,而不是调用这个函数,所以这对我来说似乎有些愚蠢。

所以,我正在寻找一种方法来做一些事情,比如右键单击结果并选择“永久忽略此结果”,就像你可能使用拼写检查器一样,但我没有看到任何这样的选项。

有办法做到这一点吗?

我不想排除整个规则或修改它以增加参数的最大数量,因为可能有其他情况我同意应该修改该函数。

1 个答案:

答案 0 :(得分:2)

您可以通过以下方式修改CQLinq规则正文:

// <Name>Methods with too many parameters</Name>
warnif count > 0 from m in JustMyCode.Methods
.WithFullNameNotIn("MyNamespace.MyType.MyMethod1(String,Int32,Int32,Boolean,String,Int32,Int32,Boolean,String,Int32,Int32,Boolean)", 
                   "MyNamespace.MyType.MyMethod2(String,Int32,Int32,Boolean,String,Int32,Int32,Boolean,String,Int32,Int32,Boolean)",
                   ...)
where 
  m.NbParameters > 5 
  orderby m.NbParameters descending
select new { m, m.NbParameters }

请注意,规则正文包含方法以排除全名。要获取方法全名,只需右键单击结果中的方法,然后选择菜单将名称复制到剪贴板

Exclude method from NDepend code rule result

或者,如果您希望从所有规则结果中取消方法,可以使用JustMyCode/notmycode facility

相关问题