2011-01-17 20 views
5

Bir C# sınıfı için Visual Studio Kod Analizi uyarı CA1506 alıyorum. “FormMain”, 25 farklı ad alanından 93 farklı (IComponent olmayan) tiple birleştirildiğini söylüyor: Bu sınıfın sınıf birleştirmelerini azaltmak için yöntemlerini yeniden yazabilir veya yeniden düzenleyebilir veya sınıfın bazı yöntemlerini bazı diğer türlere taşımayı düşünebilirsiniz. sıkıca ile birleştirilir. 95 üzerinde bir sınıfı birleştirme zayıf dayanıklılığını gösterir, 95 ve 80 arasında bir sınıf birleştirme orta idame gösterir ve 80'in altında bir sınıf birleştirme iyi bakımı anlamına gelmektedir." Ben FormMain bağlanmaktadır türleri listesini görebileceğinizAnalizi FxCop/Kod Analizi uyarı CA1506: AvoidExcessiveClassCoupling

Sorum basit, bu yüzden durumu daha iyi anlayabilir?

Teşekkürler.

+0

Bu formda var kaç kontroller? Form.cs dosyasında kaç tane kod satırı var? –

+0

Ben Developer Express şerit bar ve yerleştirme panelleri kullanıyorum. Şerit çubuğunda yaklaşık 30 kontrol vardır. yaklaşık 800 hat boş satır veya yorumlar değildir olan yaklaşık 1600 hatları (sayılmadan FormMain.Designer.cs) vardır, boş satır ve yorumlar da dahil olmak üzere . – RenniePet

cevap

4

Sen ('Bağlıdır' sınıfına sağ tıklatıp 'Analiz', genişletmek) herşeyi böyle sınıf kullanır analiz etmek Reflector kullanabilirsiniz

+0

Çok teşekkür ederim. Bu çok ilginç görünüyor ve bence sorumun cevabı o listede gömülü. Şimdi bilmek istediğim tek şey, sadece türlerini içeren bir liste elde etmek için bir yol olup olmadığını ve türler içindeki tüm yöntemleri değil, sadece DevExpress türlerine karşı rakamlar koymamı kolaylaştırmaktır. .Net Framework türleri vs kendi türleri. – RenniePet

+0

Komik, bu listeden tüm yöntemleri kaldırdığımda, 20 ad alanında yaklaşık 145 tür alıyorum, bu da Kod Analizinin uyarı mesajında ​​tam olarak ne ifade ettiği değil. Yine de, şimdi DevExpress üzerinde "sorunu" için suçu koyarak, bu uyarıyı görmezden içinde yeterince emin hissediyorum. (70 tür için DevExpress, 40 için Net Framework ve kalan 30 için kendi türlerim). – RenniePet

+0

@RenniePet - Herhangi bir iş mantığı veya veritabanı erişim kodu var mı? Eğer öyleyse, bu işlevselliği sınıflara ayırmak da formun bağımlılıklarını azaltmaya yardımcı olacaktır. – Pedro