免费的C#指标计算库(DLL)

Jur*_*uri 13 c# code-metrics

我想问你是否知道一些计算CK指标的免费C#库(dll)(主要是Cyclomatic Complexity).

对于我打算做的项目,我需要这样做.我知道已经有一些完成的解决方案可以计算CK指标并以各种形式显示给你,但我需要的是我可以在我的应用程序中使用的解决方案.所以在开始写自己之前我首先想问你.

谢谢

nul*_*ken 16

DrivenMetrics是一个开源的C#命令行工具.核心功能与命令行控制台客户端隔离为库(此处可以使用Core项目).

即使非常简单,它也可能符合您的需求:它是免费的,计算行数并计算方法的圈复杂度(潜在代码路径的数量).

这是通过直接分析IL来实现的,这要归功于Mono.Cecil(NDepend所依赖的库).这允许对使用C#,VB.Net编写的代码构建的程序集执行分析,...


更新:

另一个选择是令人惊叹的 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);
    }
}
Run Code Online (Sandbox Code Playgroud)