如果使用新调用类型,我该如何依赖于NDETION分析



我们有一种名为 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一次匹配它们)。

最后,您应该使此规则至关重要,并且应该有效:)

最新更新