我们有一种名为 OldThing
的类型,我们希望随着时间的推移将其弃用。
我们需要一个ndepperip的查询/规则,说from this point on, don't add any more calls to 'OldThing'
。
我们目前使用Ndepend,并具有基线构建用于检查don't make large methods even larger
之类的东西。
因此,我们想使用ndection来跟踪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
...麻烦是,它似乎不起作用;它找不到任何 new 调用。
有没有更好的方法在Ndepperion中进行此操作(也许是使用trend metrics
)?
您不需要where m.IsUsedRecently()
,这仅适用于第三方方法调用。
然后,您需要仔细检查let
表达式是否与适当的弃用方法匹配(您也可以使用ObsoleteAttribute
一次匹配它们)。
最后,您应该使此规则至关重要,并且应该有效:)