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

6
我在VS 2012中针对我的C#项目运行NDepend。有一个特定的“关键规则违反”问题,我已经查看并决定将其保留原样。我想告诉NDepend忽略这一个违规情况,不要将其计入我的关键规则违反计数中,以便我可以让底部的点不再是红色的。
如果有关系的话:这是一个“参数太多的函数”。该函数的目的是将日志记录到数据库表中,我需要传递所有值(11个)以填充表格(在对它们应用一些逻辑之后)。我想我可以将所有值放入一个结构体或类中,然后将其作为单个值传递,但是除了调用此一个函数外,没有其他用途,所以这种做法对我来说似乎有些愚蠢。
因此,我正在寻找一种方式,就像在拼写检查器中所做的那样,右键单击结果并选择“永久忽略此结果”的方法,但我没有看到任何这样的选项。
有办法做到这一点吗?
我不想排除整个规则或修改它以增加最大参数数,因为可能会出现其他情况,我同意修改函数。
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接