2013-12-07 27 views
6

Sto eseguendo NDepend rispetto al mio progetto C# in VS 2012. C'è una particolare "violazione delle regole critiche" che ho esaminato e ho deciso che voglio lasciare così com'è. Voglio dire a NDepend di ignorare questa singola violazione e NON contarla contro il mio conteggio delle violazioni delle regole critiche, in modo da poter ottenere il punto in basso per non essere più rosso.Posso dire a NDepend di ignorare un singolo risultato?

Se è importante: è una "funzione con troppi parametri". Lo scopo della funzione è di creare una voce di log in una tabella di database, e ho bisogno di passare tutti i valori (11 di essi) per popolare la tabella (dopo aver applicato qualche logica ad essi). Suppongo che potrei mettere tutti i valori in una struct o in una classe e passarla come un singolo valore, ma non ci sarebbe altro uso per struct/class che chiamare questa una funzione, quindi mi sembra un po 'sciocco.

Quindi, stavo cercando un modo per fare qualcosa come fare clic con il tasto destro del mouse sul risultato e scegliere "Ignora permanentemente questo risultato", come si potrebbe fare con un correttore ortografico, ma non vedo alcuna opzione del genere .

C'è un modo per farlo?

Non voglio escludere l'intera regola o modificarla per aumentare il numero massimo di parametri, in quanto potrebbero esserci altri casi in cui sono d'accordo sul fatto che la funzione debba essere modificata.

risposta

2

È possibile modificare la regola corpo CQLinq questo modo:

// <Name>Methods with too many parameters</Name> 
warnif count > 0 from m in JustMyCode.Methods 
.WithFullNameNotIn("MyNamespace.MyType.MyMethod1(String,Int32,Int32,Boolean,String,Int32,Int32,Boolean,String,Int32,Int32,Boolean)", 
        "MyNamespace.MyType.MyMethod2(String,Int32,Int32,Boolean,String,Int32,Int32,Boolean,String,Int32,Int32,Boolean)", 
        ...) 
where 
    m.NbParameters > 5 
    orderby m.NbParameters descending 
select new { m, m.NbParameters } 

Si noti che il corpo regola contiene il metodo (s) per escludere nomi completi. Per ottenere il nome completo del metodo, fare clic con il pulsante destro del mouse sul metodo nel risultato e selezionare il menu Copia nome negli appunti.

Exclude method from NDepend code rule result

In alternativa, se si vuole sopprimere un metodo da tutte le regole i risultati, è possibile utilizzare il JustMyCode/notmycode facility.

+1

Grazie, ha funzionato alla grande! – JoeMjr2

Problemi correlati