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

Joe*_*jr2 6 ndepend visual-studio-2012

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

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

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

有没有办法做到这一点?

我不想排除整个规则或修改它以增加参数的最大数量,因为可能存在我同意应该修改该函数的其他实例.

Pat*_*eam 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 }
Run Code Online (Sandbox Code Playgroud)

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

从 NDepend 代码规则结果中排除方法

或者,如果您希望从所有规则结果中隐藏某个方法,您可以使用JustMyCode/notmycode 工具