5

我知道我可以通过右键单击并选择“计算代码度量”来访问我在 Visual Studio 2008 团队资源管理器中的代码的圈复杂度。我想公开这些数据以供 Web 应用程序显示。有人知道通过 API 访问这些数据的任何方式吗?

谢谢你的帮助!

4

4 回答 4

2

我使用NDepend来处理类似的事情。您可以在 NDepend 中创建 CQL 查询并执行它们。
例子:

SELECT METHODS  WHERE CC > 8

返回圈复杂度大于 8 的方法。

于 2009-04-07T22:02:44.123 回答
2

如this answer中所述,可以利用Gendarme开源工具的 API 来计算方法的圈复杂度

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);
    }
}
于 2011-06-27T19:55:34.597 回答
1

没有 API。但是您可以阅读Code Metrics Power Tool生成的 XML 文件。因此,您将通过命令行生成代码度量 XML 文件,例如:

metrics /f:MyAssembly.dll /o:MetricsResults.xml

然后从 MetricsResults.xml 中获取您想要的数据。

更多关于电动工具的信息在这里

如果您想在 TFS 构建中运行代码指标,请参阅此处此处了解选项。

于 2011-05-20T15:36:31.297 回答
-1

我没有——Visual Studio 是否有任何此类 API?- 但计算圈复杂度相当容易。 宪兵可能是你的答案。

于 2009-04-07T22:04:39.657 回答