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

2024-03-19

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

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

因此,我正在寻找一种方法来执行诸如右键单击结果并选择“永久忽略此结果”之类的操作,就像您使用拼写检查器所做的那样,但我没有看到任何此类选项。

有没有办法做到这一点?

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


您可以这样修改 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 }

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

或者,如果您希望从所有规则结果中抑制某个方法,您可以使用JustMyCode/notmycode 设施 http://www.ndepend.com/Doc_CQLinq_Syntax.aspx#NotMyCode.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以告诉 NDepend 忽略单个结果吗? 的相关文章

随机推荐