2009-04-07 13 views
5

Visual Studio 2008 Ekip Gezgini'ndeki koduma döngüsel karmaşıklığı sağ tıklayıp "Kod Metrilerini Hesapla" yı seçerek erişebileceğimi biliyorum. Bunu görüntülemek için bir web uygulaması için bu verileri açığa çıkarmak istiyorum. Bir API aracılığıyla bu verilere ulaşmanın herhangi bir yolu bilen var mı?.NET'te Cyclomatic Karmaşıklık Türetilmesi

Yardımlarınız için teşekkürler!

cevap

2

Böyle şeyler için NDepend kullanıyorum. NDepend'de CQL sorguları oluşturabilir ve bunları çalıştırabilirsiniz.
Örnek:

SELECT METHODS WHERE CC > 8 

8.

-1

daha büyük bir cyclomatic karmaşıklığı ile yöntemlerini döndürür I do not - Visual Studio bu tür herhangi API'leri var? - Ancak bilgisayarlı karmaşık karmaşıklığı hesaplamak kolaydır. Cevabınız Gendarme olabilir.

+0

ait cyclomatic karmaşıklığını hesaplamak için Jandarma açık kaynak aracının API artırabilen Jandarma FxCop için iyi bir yedek olmak mı? – Paco

1

API yok. Ancak, Code Metrics Power Tool tarafından oluşturulan bir XML dosyasını okuyabilirsiniz. Sonra MetricsResults.xml dışına istediğiniz verileri yakala

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

: Yani böyle komut satırı ile kod ölçümlerini XML dosyası üretecektir.

Elektrikli alet hakkında daha fazla bilgi here.

Kod metriklerini TFS yapınızda çalıştırmak istiyorsanız, seçenekler için bkz. here ve here.

2

bu answer açıklandığı gibi, tek bir yöntemle

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); 
    } 
}
İlgili konular