2009-04-07 6 views
5

私は、右クリックして "コードメトリクスの計算"を選択することで、Visual Studio 2008チームエクスプローラで私のコードの循環的複雑さにアクセスできることを知っています。私はそれを表示するWebアプリケーションのためにこのデータを公開したいと思います。誰もがAPIを通じてこのデータにアクセスする方法を知っていますか?.NETでの循環的複雑さの導出

ありがとうございました!

答えて

2

私はそのようなもののためにNDependを使用します。 NDependでCQLクエリを作成して実行することができます。
例:

SELECT METHODS WHERE CC > 8 

は8

-1

よりも大きな循環的複雑度を持つメソッドを返し、私はしません - Visual Studioは、その種の任意ののAPIがありますか?サイモミックな複雑さを計算することはかなり簡単です。 Gendarmeがあなたの答えかもしれません。

+0

の循環的複雑度を計算する憲兵オープンソースツールのAPIを活用することができますが憲兵がFxCopのための良い代替なりますか? – Paco

1

APIはありません。しかし、Code Metrics Power Toolによって生成されたXMLファイルを読むことができます。その後MetricsResults.xmlのうち、必要なデータをつかむ

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

:だからのようなコマンドラインでコードメトリクスのXMLファイルを生成します。

パワーツールの詳細here

TFSビルドでコードメトリックを実行する場合、オプションについてはhereおよびhereを参照してください。

2

このanswerで説明したように、1の方法

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); 
    } 
}
関連する問題