2011-01-17 15 views
5

Ricevo l'avvertenza di analisi del codice Visual Studio CA1506 per una classe C#. Dice "FormMain" è accoppiato con 93 tipi diversi (non IComponent) da 25 diversi spazi dei nomi Riscrivi o refactoring i metodi di questa classe per diminuirne l'accoppiamento di classe, o considera di spostare alcuni dei metodi della classe in alcuni degli altri tipi è strettamente accoppiato con un accoppiamento di classe superiore a 95 indica scarsa manutenibilità, un accoppiamento di classe tra 95 e 80 indica una manutenibilità moderata, e un accoppiamento di classe inferiore a 80 indica una buona manutenibilità. "Analisi di avviso Analisi FxCop/Code CA1506: AvoidExcessiveClassCoupling

La mia domanda è semplicemente, dove posso visualizzare un elenco di tutti i tipi a cui è unito FormMain, in modo da poter capire meglio la situazione?

Grazie.

+0

Quanti controlli avete in questo modulo? Quante righe di codice nel file form.cs? –

+0

Uso la barra multifunzione e i pannelli di aggancio Developer Express. Ci sono circa 30 controlli sulla barra multifunzione. Includendo righe e commenti vuoti ci sono circa 1600 righe (senza contare FormMain.Designer.cs), di cui circa 800 righe non sono righe vuote o commenti. – RenniePet

risposta

4

È possibile utilizzare Reflector per analizzare tutto ciò che un uso di classe (tasto destro del mouse sulla classe, fare clic su 'Analisi', espandere 'In base al')

+0

Grazie mille. Sembra molto interessante, e penso che la risposta alla mia domanda sia sepolta in quella lista. L'unica cosa che vorrei sapere ora è se c'è un modo per ottenere una lista contenente solo i tipi, e non tutti i metodi all'interno dei tipi, solo per rendere più facile per me mettere i numeri sui tipi DevExpress vs. .Net Framework tipi contro i miei tipi. – RenniePet

+0

Divertente, quando rimuovo tutti i metodi da quella lista ottengo circa 145 tipi in 20 spazi dei nomi, che non è esattamente quello che l'Analisi del Codice ha detto nel suo messaggio di avviso. Tuttavia, ora mi sento abbastanza sicuro nell'ignorare questo avvertimento, attribuendo la responsabilità del "problema" su DevExpress. (Conti DevExpress per 70 tipi, .Net Framework per 40 e i miei tipi per i restanti 30.) – RenniePet

+0

@RenniePet - Nel modulo sono presenti codici di accesso di business logic o database? In tal caso, lo spostamento di tale funzionalità in classi separate contribuirà anche a ridurre le dipendenze del modulo. – Pedro