NDepend, standart "Yöntem çok büyük" sorgusunun değiştirilmiş bir sürümünü kullanarak uzun yöntemleri tanımlamak için çalışıyorum.Tip özniteliğinde NDepend yöntemleri sorgusu nasıl kısıtlanır
Geliştiricilerin az kontrol sahibi olduğu uzun yöntemleri bildirmek istemiyorum, bu yüzden DebuggerNonUserCode
özniteliğini ve InitializeComponent()
kullanarak oluşturulan kodu filtreleyeceğim.
Maalesef, oluşturulan türlerde de yöntemler bildirildiğinden hala yanlış pozitifler elde ediyorum. Sorun, türün kendisi DebuggerNonUserCode
özniteliğine sahipken, yöntemlerin üretmemesidir, bu nedenle üretildikleri gerçeğine rağmen çıktıya dahil edilirler.
Türler ve yöntemler arasında birleştirme gibi bir şey arıyorum: DebuggerNonUserCode
özniteliğine sahip olmayan tüm türleri verin ve bu sorguyu çalıştırın, ancak bunu CQL'de nasıl ifade edeceğimi anlayamıyorum.
Bazı derlemeler için, tam adı filtreleyebilirim, ancak ne yazık ki, derlemelerimizden bazıları geliştirici ve oluşturulmuş türleri karıştırıyor. Ne yazık ki bu durumda IsGeneratedByCompiler
kullanılamaz.
Benim sorgu
WARN IF Count > 0 IN SELECT METHODS WHERE
NbLinesOfCode > 30 AND
!HasAttribute "System.Diagnostics.DebuggerNonUserCodeAttribute" AND
!NameIs "InitializeComponent()"
ORDER BY NbLinesOfCode DESC
Ben bu söz etmeyin bilgi yöntemlerini katılıp yazmak için bir yol ve V3 hatta sürüm notlarını ya bulamadık bakabilirsiniz. – Timores
IsGeneratedByCompiler yöntem özniteliğini denediniz mi? – Timores
@Timores: Tam olarak, ikisi arasında bir birleşme yapabilseydim. IsGeneratedByCompiler'a bakmadım. Belgelerden hile yapmak gibi görünmüyor. ama yine de bir şans vereceğim ve sorunu güncelleyeceğim. –