2011-01-17 12 views
5

Otrzymuję ostrzeżenie CA1506 dotyczące analizy kodu programu Visual Studio dla klasy C#. Mówi, że "FormMain" jest połączony z 93 różnymi (nie-IComponentowymi) typami z 25 różnych przestrzeni nazw. Przebuduj lub zredukuj metody tej klasy, aby zmniejszyć sprzężenie klas, lub rozważ przeniesienie niektórych metod klasy do niektórych innych typów jest ściśle sprzężony z. Sprzężenie klasy powyżej 95 wskazuje słabą zdolność do utrzymywania, sprzężenie w klasach między 95 a 80 wskazuje na umiarkowaną łatwość utrzymania, a sprzężenie w klasie poniżej 80 wskazuje na dobrą konserwację. "Analizowanie ostrzeżenia o analizie FxCop/kodu CA1506: AvoidExcessiveClassCoupling

Moje pytanie jest po prostu, gdzie mogę zobaczyć listę wszystkich typów, z którymi jest połączona FormMain, dzięki czemu mogę lepiej zrozumieć sytuację?

Dzięki.

+0

Ile masz kontrole w tej formie? Ile wierszy kodu w pliku form.cs? –

+0

Używam paska wstążki programu Developer Express i paneli dokowania. Na pasku wstążki znajduje się około 30 elementów sterujących. W tym puste wiersze i komentarze jest około 1600 linii (nie licząc FormMain.Designer.cs), z których około 800 linii nie są puste wiersze lub komentarze. – RenniePet

Odpowiedz

4

Można użyć Reflector analizować wszystko, zastosowań klasa (kliknij prawym przyciskiem myszy na danej klasy, kliknij „Analyse” rozwiń „zależy od”)

+0

Dziękuję bardzo. Wygląda to bardzo interesująco i myślę, że odpowiedź na moje pytanie jest ukryta na tej liście. Jedyne, co chciałbym teraz wiedzieć, to czy istnieje sposób, aby uzyskać listę zawierającą tylko typy, a nie wszystkie metody w typach, aby ułatwić mi umieszczanie liczb na typach DevExpress vs. Typy .Net Framework a moje własne typy. – RenniePet

+0

Zabawne, kiedy usunę wszystkie metody z tej listy, otrzymuję około 145 typów w 20 przestrzeniach nazw, co nie jest dokładnie tym, co Analizy Kodu mówi w swoim komunikacie ostrzegawczym. Wciąż jednak czuję się wystarczająco pewny ignorując to ostrzeżenie, obwiniając za "problem" DevExpress. (DevExpress obejmuje 70 typów, .Net Framework for 40, i moje własne typy dla pozostałych 30.) – RenniePet

+0

@RenniePet - Czy masz w formularzu logikę biznesową lub kod dostępu do bazy danych? Jeśli tak, przeniesienie tej funkcji do oddzielnych klas również pomoże zmniejszyć zależności formularza. – Pedro