2010-03-23 19 views
12

Bir VS.NET 2008 projem var. Projede kullanılmayan sınıfları kontrol etmek mümkün mü? FXcop ile kullanılmayan değişkenleri ve kullanılmayan kodları bulabilirim, ancak kullanılmayan sınıflar.Bir. Net projesinde kullanılmayan sınıfları bulma

+0

Sınıfları silerken dikkatli olun. Hala bir önişlemcinin arkasındaki kodla kullanılabilir veya şu anda yüklü olmayan bir proje tarafından kullanılabilir. – Carra

cevap

8

bir .NET kod tabanı kullanılmayan kod bulmasına yardımcı olabilecek aracın NDepend kullanılmayan sınıfların size bildirmiştik. Yasal Uyarı: Bu aracın geliştiricilerinden biriyim.

Bir bitin ayrıntılandırılması için NDepend, Code Rule over LINQ Query (CQLinq) yazmayı önerir.

// <Name>Dead Methods</Name> 
warnif count > 0 
from m in Application.Methods where !m.MethodsCallingMe.Any() 
select m 

NDepend rule to find unused methods (dead methods)

Ama bu kural: 200 default code rules önerilmiştir civarında, 3 tanesi örneği gibi görünüyor kullanılmayan yöntemi saptamak için kullanılmayan/ölü kod algılama Temelde

böyle bir kural adanmış olan naif ve önemsiz yanlış pozitif geri döner. Orada bir yöntem asla denir birçok durum henüz 3 varsayılan kurallardır neden (giriş noktası, sınıf yapıcısı, finaliser ...) bu kullanılmayan değil daha özenli:

NDepend Visual Studio entegre edilmiştir) ... temsilci. Araç ayrıca CI işleminize entegre edilebilir ve kuralların ihlali ve suçlu kod öğelerini gösterecek reports oluşturabilir.

Bu kuralların kaynak koduna yönelik bu 3 bağlantıyı tıklatırsanız, türleri ve yöntemleri ile ilgili olanların biraz karmaşık olduğunu görürsünüz. Bunun nedeni, yalnızca kullanılmayan türleri ve yöntemleri değil, aynı zamanda kullanılmayan ölü türleri ve yöntemleri (yinelemeli) kullanan türlerini ve yöntemlerini de kullanır.

Bu nedenle önek, kural adlarında Potansiyel statik analiz olduğunu. Bir kod öğesi yalnızca yansıma yoluyla kullanılıyorsa, bu kurallar kullanılmadığı şekilde kullanılmaz.

Bu 3 kuralı kullanmaya ek olarak, kod kapsamının testlerle ölçülmesini ve kapsamın tam olması için çaba sarf etmenizi tavsiye ederim. Genellikle, testlerle karşılanamayan kodu göreceksiniz, güvenli bir şekilde atılabilen kullanılmamış/ölü kodudur. Bu, özellikle bir kod dalının erişilebilir olup olmadığının net olmadığı karmaşık algoritmalarda kullanışlıdır.

3

Resharper (çözüm çapında denetimini birlikte) otomatik olarak projenize & çözüm

+0

Çözüm genişliğinde kontrol hakkında bilgi sahibi olmadı, teşekkürler – Ivo

+0

Sadece> 4.5'den çalışır. – Carra

+1

Çözümümdeki hangi sınıfların bir kerede kullanılmadığını söylemek için bir "rapor" çalıştırmanın bir yolu var mı? – Alex

İlgili konular