2017-02-13 27 views
7

Bu yöntemlerin hiçbir zaman çağrılmadığını algılamak için yöntemleri izleyebilen bir Öznitelik yazmak mümkün mü?C# Kullanılmayan yöntemleri saptamak için öznitelik

[Track] 
void MyMethod(){ 

} 

çıkışı:

warning: method "MyMethod" in "MyClass" has no references in code. 

Kesinlikle derleme zamanında yayınlanmasını sağlamak için gerekli değildir, ancak uygulama (yine derleme zamanında iyi) başlatılır zaman çalışmalıdır. ses çok sık tekrar elden beri

Bu etiket, parça yöntemlerine Ses Kitaplığı için putted edilecek ve biz genellikle biz bu yüzden hızla algılayıp kullanılmayan kaldırabilirsiniz bu yöntemleri işaretlemek istediğiniz kodunda 0 referanslarla ses yöntemlerle aramak ses varlıkları.

Temel olarak, her seferinde yeni bir ses efekti eklediğimizde, daha sonra onu tetikleyemeyebiliriz (yöntemini çağırarak) ve ses dosyası/çalma kodu, uygulamada uzun süre kalabilir.

+8

Kodun değiştirilmemesi avantajıyla, kullanılmayan yöntemleri bulmak için kod çözümleme araçlarını kullanabilirsiniz (https://msdn.microsoft.com/en-us/library/3z0aeatx.aspx) –

+0

ücretsiz bir kod analizi Sadece belirli sınıflarda çalıştırılabilir araç? (yine de kod çözümleme aracı manuel olarak tetiklenmeli, uyarının otomatik olarak çıkarılmasını istiyoruz) – GameDeveloper

+0

@Everts aslında her yöntemi "tüm referansları bul" diyerek kontrol ediyoruz, ama bu otomatikleştirmeyi istediğimiz sıkıcı bir el koymasıdır :) teşekkürler. – GameDeveloper

cevap

2

Belki aradığınız cevap budur? Eğer Yansıma ile kendi bir şey otomatikleştirmek için orada kodu kullanabilirsiniz

Finding all references to a method with Roslyn

Ben kısmi cevap burada bulunan

+0

Unity'de çalışacağından emin değilim, teşekkürler! :) – GameDeveloper

+1

Görünüşe göre Roslyn henüz bir konuya uygun değil – GameDeveloper

+1

de, bu doğadan bir şey yapmak için her zaman regex kullanabilirsiniz, ama bu oldukça ağır olacak :( –

İlgili konular