【问题标题】:Ndepend find actual number of method usagesNdepend 查找方法使用的实际数量
【发布时间】:2013-01-16 11:14:21
【问题描述】:

假设我有方法A.M1。 在B.M2 中调用了 2 次,在B.M3 中调用了 3 次。 我需要找到所有数量的用法(就像 Resharper 通过查找用法界面所做的那样)。所以方法调用的总和是 5。

以下查询:

from m in Methods where m.HasAttribute("specific attribute") orderby m.MethodsCallingMe.Count() descending select new { m, m.MethodsCallingMe }

只给了我方法 A.M1 的 2 种用法。

您能帮我找到使用编号吗?

【问题讨论】:

  • NDepend 告诉哪些方法正在调用哪些方法,但它不告诉一个特定方法调用另一个方法的次数。
  • 所以使用 NDepend 根本无法完成任务?
  • 不,这根本无法实现。

标签: linq ndepend cqlinq


【解决方案1】:

使用 NDepend 很难或不可能做到。 NDepends 显示哪些方法正在调用指定的方法,在这种情况下不计算它们,甚至不递归或通过调用图计算它们。

所以尝试使用其他技术。首先,为什么需要这样的指标?某种方法等级?

无论如何,实现它的一个非常简单的方法是使用 RegEx 表达式。您还可以一起使用 NDepend API 或 regex 和 ndepend api。例如,使用 nDepend API 从源代码库中获取所有方法名称,然后对每个方法名称计数匹配使用正则表达式,但方法定义本身除外。

【讨论】:

  • NDepend API 也无济于事,因为它与 CQLinq 共享相同的代码模型(请参阅我对问题的评论)。
  • "甚至不递归地或通过调用图计算它们。"关于这一点,NDepend 有很多设施 :)
  • "为什么需要这样的度量?某种方法排名?" NDepend 具有指标 IMethod.Rank ndepend.com/API/…
猜你喜欢
  • 2011-01-28
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多