我可以通过CQL找到没有getter数量的方法吗?

时间:2011-12-08 11:13:48

标签: ndepend

我正在使用ndepend来查找我的代码问题。而现在我发现错误的误报太多了。

例如,我有一个完全不复杂的类,但它确实有很多属性。所以,我会从NDepend得到一个警告,那个班级有太多的方法。

这是开箱即用的NDepend规则,希望类具有大量方法:

WARN IF Count > 0 IN SELECT TYPES WHERE 
NbMethods > 20 
ORDER BY NbMethods DESC

我可以更改NDepend计算方法数的方式,所以我可以排除我想要的属性吗?

1 个答案:

答案 0 :(得分:1)

  

我可以更改NDepend计算方法数的方式,所以我可以排除我想要的属性吗?

谢尔盖,是的,这要归功于以下CQLinq rule

warnif count > 0 
from t in Application.Types
let methods = t.Methods
   .Where(m => !m.IsPropertyGetter && !m.IsPropertySetter &&
               !m.IsConstructor)
where methods.Count() > 20
orderby methods.Count() descending
select new { t, methods }

这里不仅可以获得方法的数量,而且对于每种类型,您都可以获得所有方法:

enter image description here