<分区>
我想问您是否知道一些计算 CK 指标(主要是圈复杂度)的免费 C# 库 (dll)。
我计划做的项目需要它。我知道已经有一些完成的解决方案可以计算 CK 指标并以各种形式显示给您,但我需要的是可以在我的应用程序中使用的解决方案。所以在开始自己写之前,我首先想问问你。
谢谢
标签 c# code-metrics
<分区>
我想问您是否知道一些计算 CK 指标(主要是圈复杂度)的免费 C# 库 (dll)。
我计划做的项目需要它。我知道已经有一些完成的解决方案可以计算 CK 指标并以各种形式显示给您,但我需要的是可以在我的应用程序中使用的解决方案。所以在开始自己写之前,我首先想问问你。
谢谢
最佳答案
DrivenMetrics 是一个开源的 C# 命令行工具。核心功能作为库与命令行控制台客户端隔离(核心项目可用 here )。
即使非常简单,它也可能满足您的需要:它是免费的,计算行数并计算方法的圈复杂度(潜在代码路径的数量)。
由于 Mono.Cecil,这是通过对 IL 的直接分析执行的(NDepend 依赖的同一个库)。这允许对用 C#、VB.Net 编写的代码构建的程序集执行分析,...
更新:
另一个选择是 amazing Gendarme,它是 Mono 项目的静态分析工具。
作为使用示例,下面的代码显示了程序集中每个方法的圈复杂度。
ModuleDefinition module = ModuleDefinition.ReadModule(fullPathToTheAssembly);
foreach (var type in module.Types)
{
foreach (var me in type.Methods)
{
if (!me.HasBody || me.IsGeneratedCode() || me.IsCompilerControlled)
continue;
var r = AvoidComplexMethodsRule.GetCyclomaticComplexity(me);
Console.WriteLine("{0}: {1}", me.ToString(), r);
}
}
关于c# - 免费的 C# 指标计算库 (DLL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1052269/