我们有一个名为OldThing
的类型,我们希望随着时间的推移弃用它。
我们需要一个说明from this point on, don't add any more calls to 'OldThing'
的NDepend查询/规则。
我们目前使用NDepend并使用基线构建来检查don't make large methods even larger
等内容。
因此,我们希望使用NDepend跟踪对OldThing
所做的任何其他调用。我有以下CQL查询:
// <Name>Don't use OldThing going forwards</Name>
warnif count > 0
let containsMethods = Methods.WithFullNameIn(
"MyNamespace.OldType.get_Foo()",
"MyNamespace.OldType.get_Bar()")
from m in Application.Methods.UsingAny(containsMethods)
where m.IsUsedRecently()
select m
......麻烦的是,它似乎无法奏效;它没有找到任何新电话。
在NDepend中有更好的方法吗(可能是利用trend metrics
)?
答案 0 :(得分:1)
您不需要where m.IsUsedRecently()
,这仅适用于第三方方法调用。
然后你需要仔细检查let
表达式是否与正确的弃用方法相匹配(你也可以使用ObsoleteAttribute
一次匹配它们。)
最后你应该制定这个规则critical,它应该有效:)