【问题标题】:How to count all methods on a visual studio solution如何计算 Visual Studio 解决方案中的所有方法
【发布时间】:2019-08-01 17:29:14
【问题描述】:

有没有办法在 Visual Studio 上轻松访问整个 NetCore 解决方案的方法总数?

【问题讨论】:

  • 您是指程序集列表中所有类型中用户定义方法的数量?
  • 是的,就是这样

标签: visual-studio methods .net-core solution


【解决方案1】:

在 Visual Studio 中,您可以使用 分析 > 计算代码指标 > 解决方案 菜单来计算每个函数的代码指标。这对您有好处,因为在结果窗口中您将获得代码中每个函数的概要。

但是,这个结果并不是很有用,因为它包含 getter 和 setter 作为单独的函数。为了解决这个问题,我右键单击主节点(或您要探索的任何节点)并选择在 Microsoft Excel 中打开选择。在这里,我在 Member 列上设置了以下过滤器:

第一行确保只包含函数,第二行确保我们不计算 getter 或 setter。这样,我们的过滤表将包含与我们解决方案中用户定义函数一样多的行(您可以选择一整列,并在窗口的右下方显示包含某些内容的行数)。

【讨论】:

  • 首先,非常感谢您的回复,我想问一下是否有一种方法可以从私有方法中过滤公共方法以及使用此解决方案
  • 可悲的是,代码指标不包含有关方法访问修饰符的信息,而且我还没有找到将公共方法与私有方法分开的方法。让我们希望有人发布一个更好的方法来计算 Visual Studio 中的方法。
【解决方案2】:

您可以在 Visual Studio 上安装 NDepend 扩展。它在其仪表板上显示方法的总数。

【讨论】:

  • 值得注意的是,这是一个非免费的方法,因为 NDepend 只有 14 天的试用期。
【解决方案3】:

是的,这是已经提出的解决方案的替代解决方案。

解决方案:使用C#交互窗口通过反射获取方法计数。

第 1 步

在 Visual Studio 中打开 C# 交互式窗口。示例:https://stackoverflow.com/a/11135787

第 2 步

获取您的 DLL 或包含 DLL 的文件夹的完整路径。

第 3 步

将反射代码粘贴到 C# 交互窗口中。

第 4 步

改进/自定义反射代码以满足您的需求。在 Stackoverflow 中搜索现有的反射解决方案。

简单代码示例:

Console.WriteLine(Assembly.LoadFrom(@"<single DLL path here>").GetTypes().Select(x => x.GetMethods().Count()).Sum());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-17
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多