【问题标题】:C# - Application to show all dependencies between functions?C# - 应用程序显示函数之间的所有依赖关系?
【发布时间】:2011-04-05 08:58:20
【问题描述】:

是否有某种应用程序可以分析源代码并以图形方式显示函数之间的所有连接?

我需要它来处理我正在处理的遗留代码 - 它庞大、实用且写得不好...... :(

【问题讨论】:

  • 你能切换到 Visual Studio 2010 吗?然后只需使用其中的内置工具
  • @Rune FS:+1。我认为这是一个合理的答案。不确定其他人是否会同意我的意见。您可能想提及在 VS 中哪里可以找到这些工具。

标签: c# dependencies


【解决方案1】:

NDepend 正是这样做以及做更多其他事情(代码指标...)

【讨论】:

    【解决方案2】:

    在 Visual Studio 2010 Ultimate 中,您可以Generate Sequence Diagrams:

    http://www.devcurry.com/2010/03/generate-sequence-diagrams-in-visual.html

    您也可以查看 MSDN 文档了解详细信息:

    http://msdn.microsoft.com/en-us/library/dd409458.aspx

    这可能也很有趣(为 .NET 代码生成依赖关系图):

    http://msdn.microsoft.com/en-us/library/dd409453.aspx

    【讨论】:

      【解决方案3】:

      .Net Reflector 非常简洁——我已经使用它几次来获取此类信息。有许多插件,其中至少有一个会生成依赖关系图。

      此外,在 VS.Net 2008 或更高版本中,右键单击“查找所有引用”可能很有用。

      【讨论】:

        【解决方案4】:

        ReSharper 提供的功能允许您查看方法图,这些方法正在调用您的方法,反之亦然。 (拨出电话和拨入电话)

        这是一个名为“Call Tracking”的新功能

        【讨论】:

          【解决方案5】:

          NDepend 确实可以像 madgnome 建议的那样管理 calling graph。让我发展一点。 首先可以通过 CQL 查询请求调用图,其次可以将查询结果导出到依赖图或依赖矩阵。

          具体来说,下面我们询问 NUnit 2.4.8 中 AppDomain 类的方法调用者(它可以是一个方法、一个字段、一个命名空间……随便什么)。由于 NDepend VS 插件,这个菜单也可以出现在 Visual Studio 中。

          然后为我们生成一个 CQL 查询,我们可以看到调用图中匹配了 30 个方法。我们可以选择将这些方法集导出为图形图...

          ...这是输出的图表(请参阅此图表的大图here

          【讨论】:

          • 感谢详细解释!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-14
          • 2013-01-13
          相关资源
          最近更新 更多