2011-08-22 1 views
4

J'ai un petit problème avec NDepend ne pas ignorer le code généré. Il récupère les problèmes liés aux méthodes avec trop de paramètres sur le fichier designer.cs généré par EF lors de la création du modèle de données d'entité. La classe est commentée avec une annotation "générée automatiquement" mais est toujours récupérée par NDepend.Comment NDepend peut-il être invité à ignorer les classes EF?

Je n'arrive pas à trouver comment forcer * .designer.cs à être ignoré ou même ignorer le fichier spécifique sans joker. Le plus proche, je suis venu est this post d'il y a quelques années où Patrick mentionne des plans pour faire cela, mais rien de plus.

Ai-je raté quelque chose? Existe-t-il un moyen facile d'exclure cela?

Répondre

5

Code Query and Rule over LINQ (CQLinq) fournit en effet une possibilité à d'ignorer le code généré.

Il existe le domaine prédéfini pratique nommé JustMyCode de type ICodeBaseView.

Le domaine JustMyCode représente une fonction de CQLinq pour éliminer les éléments de code générés des résultats de requête CQLinq. Par exemple, la requête suivante ne correspondent grandes méthodes qui ne sont pas générés par un outil (comme un concepteur d'interface utilisateur):

from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m 

L'ensemble des éléments de code généré est défini par les requêtes CQLinq préfixés avec le mot-clé CQLinq de notmycode . Par exemple, la requête ci-dessous correspond méthodes définies dans les fichiers source dont le nom se termine avec « .designer.cs »:

notmycode from m in Methods where 
    m.SourceFileDeclAvailable && 
    m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs") 
select m 

Le CQLinq requêtes coureur exécute toutes les requêtes notmycode avant requêtes se fondant sur JustMyCode, par conséquent, le domaine JustMyCode est défini une fois pour toutes. Il est évident que le compilateur CQLinq émet une erreur si une requête notmycode repose sur le domaine JustMyCode.

Il y a 4 requêtes par défaut notmycode, facilement adaptables à vos besoins. Vous pouvez également créer vos supplémentaires notmycode requêtes:

Questions connexes