Existe-t-il un moyen de se débarrasser de la longue liste d'utilisations en haut de mes fichiers .cs?

StackOverflow https://stackoverflow.com/questions/62219

Question

Au fur et à mesure que la solution contient de plus en plus d'espaces de noms, la liste des instructions qui figurent en haut de mes fichiers s'allonge de plus en plus. C'est particulièrement le cas dans mes tests unitaires où, pour chaque composant appelé, il est nécessaire d'inclure l'utilisation de pour l'interface, le conteneur IoC et le type concret.

Avec plus de 17 lignes d’utilisation dans mes fichiers de test d’intégration, cela ne fait que commencer à s’énerver. Est-ce que quelqu'un sait s'il existe un moyen de définir une macro pour ma base en utilisant des instructions? D'autres solutions?

Était-ce utile?

La solution

Certaines personnes aiment cacher les utilisations dans une région . Sinon, je pense que vous n'avez pas de chance. Sauf si vous souhaitez mettre l'espace de noms sur tous vos référents.

Autres conseils

Je sais que je ne devrais pas dire cela à haute voix, mais peut-être reconsidérer votre conception.

17 utilisations dans 1 fichier = beaucoup de couplage (au niveau de l'espace de noms).

Je ne peux pas supporter Resharper moi-même. Mais je ne peux pas non plus supporter des déclarations désordonnées. J'utilise le complément Commandes d'alimentation pour VS, qui comporte un "Supprimer et trier" pratique utilisation de la commande statement (entre autres bonnes choses).

Il y a quatre problèmes possibles ici;

Les espaces de noms de votre code divisent vos classes de manière trop fine. si vous en avez, par exemple;

using MyCompany.Drawing.Vector.Points;
using MyCompany.Drawing.Vector.Shapes;
using MyCompany.Drawing.Vector.Transformations;

envisagez de les réduire en un seul espace de noms MyCompany.Drawing.Vector . Vous ne gagnez probablement pas en divisant trop. Visual Studio Code Analysis / FxCop a une règle pour cela, vérifiant le nombre de classes dans un espace de noms. Trop peu et cela vous avertira.

Vous mettez trop de tests dans la même classe. Si vous faites référence à System.Data , System.Drawing et System.IO dans la même classe, envisagez d'écrire davantage de tests atomiques, dont certains permettent d'accéder aux bases de données, d'autres qui dessinent des images et d'autres qui accèdent au système de fichiers. Puis divisez chaque type en trois classes de test.

Vous écrivez des tests qui en font trop. Si vous faites référence à de nombreux espaces-noms, il est possible que vos tests couplent trop de fonctionnalités. Ce type de couplage peut souvent être bogué, essayez donc de diviser des fonctions volumineuses et variées en plusieurs parties, et testez-les dans des fichiers distincts.

Beaucoup sont redondants. Sont-ils tous utilisés ou sont-ils simplement copiés-collés à partir d'autres fichiers? Cliquez avec le bouton droit de la souris sur l’éditeur de code et choisissez l’option «Organiser avec» pour supprimer les instructions non utilisées.

  

Est-ce que quelqu'un sait s'il y a un moyen de   définir une macro pour ma base en utilisant   déclarations?

Voulez-vous dire que les espaces de noms que vous utilisez souvent sont automatiquement ajoutés à chaque nouvelle classe? Si oui, Resharper peut le faire aussi. De plus, il dispose d'une fonctionnalité permettant de mettre les utilisations dans une région sur le nettoyage du code. Resharper est peut-être la voie à suivre (vous ne le regretterez pas, comme je peux le dire de ma propre expérience).

VS2008 a ajouté un " Organize Usings " menu contextuel, avec les options Trier, Supprimer et "Supprimer et trier". option qui fera ce que vous voulez par fichier. Le complément Visual Studio Power Commands ajoute un menu contextuel dans l'explorateur de solutions pour les projets et les solutions qui est un "Supprimer et trier". pour tous les fichiers du projet et tous les projets de la solution, respectivement.

Si vous souhaitez modifier les instructions d'utilisation par défaut effectuées lors de la création d'un nouveau fichier, consultez le répertoire C: \ Programmes \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033. . Il contient un ensemble de fichiers zip que vous pouvez modifier pour modifier les modèles de fichiers de code (déplacez-vous évidemment vers le haut de la structure de répertoires pour modifier d'autres langues ou d'autres types de fichiers).

Voir ici pour plus d'informations.

Il peut être utile d’utiliser le crénelage. Pas sûr que ça en vaille la peine, mais au lieu de:

using System.Web.UI;
using System.Web.Mail;
using System.Web.Security;
... Control ...
... MailMessage ...
... Roles ... 

vous pouvez utiliser:

using W = System.Web;
... W.UI.Control ...
... W.Mail.MailMessage ...
... W.Security.Rolse ...

Resharper - le complément pour Visual Studio - a une fonctionnalité qui supprime les utilisations inutilisées d'un fichier, mais je ne sais pas ce qui fait exactement ce que vous décrivez.

Dans VS2008, vous pouvez cliquer avec le bouton droit de la souris sur le fichier CS et choisir "Organiser les utilisations". Il supprimera l'utilisation non utilisée et les triera pour vous aussi. Autre que cela, je voudrais juste utiliser #region. De même, CTRL + M + O réduira toutes les fonctions de vos régions, etc. au moment de la conception. J'utilise beaucoup ce raccourci!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top