Je fais un nettoyage architectural qui implique de déplacer un tas de classes dans différents projets et/ou espaces de noms. Actuellement, je déplace les fichiers à la main, en construisant, puis en ajoutant manuellement des instructions en utilisant Foo pour résoudre les erreurs de compilation. Quelqu'un connaît-il une façon plus intelligente de procéder? (Nous sommes une boutique CodeRush et Refactor!, Mais je serais intéressé de savoir si Resharper a un support pour cela)
Resharper est le seul outil que je connaisse de ce qui a cette capacité. Il y a aussi beaucoup d'autres fonctionnalités qui manquent dans CodeRush et Refactor!
Visual Studio 2010 a la possibilité de renommer un espace de noms. Placez le curseur sur le nom de l'espace de noms et appuyez sur F2. Ou renommez-le simplement dans le code et appuyez sur Shift+Alt+F10, Enter après avoir vu le gribouillis rouge apparaître.
Reharper peut également renommer les espaces de noms . Citation:
Le Renommage de l'espace de noms permet aux utilisateurs de renommer un espace de noms spécifique et de corriger automatiquement toutes les références à l'espace de noms dans le code. Les utilisations suivantes sont renommées:
- Instructions d'espace de noms
- Utilisation de directives
- Noms qualifiés des types
Cette réponse s'applique à au moins Visual Studio 2013 et 2015 sans aucun resharper requis
MyCorp.AppStuff.Api
MyCorp.AppStuff.Api.Extensions
Visual Studio 2019 propose au moins 2 options intégrées:
'Déplacer vers l'espace de noms ...' le refactoring peut être déclenché sur n'importe quelle classe, et VS demandera l'espace de noms cible.
'Changer l'espace de noms en ...' le refactoring est fourni lorsque l'espace de noms du fichier actuel ne correspond pas à la structure du dossier.
Cela peut être utilisé pour déplacer des classes individuelles vers un autre espace de noms en:
Ces opérations garantissent que toutes les références sont mises à jour en conséquence.
Il existe des solutions partielles pour VS 2015 et VS 2017 sans Resharper en utilisant des extensions gratuites.
Une extension que j'aime aujourd'hui (fin 2017) est le Fix Namespace VS Extension: https://marketplace.visualstudio.com/ items? itemName = vs-publisher-599079.FixNamespace # overview
Il analyse la structure des dossiers de votre solution et propose une refactorisation des espaces de noms à l'aide de cela. Malheureusement, ce n'est pas parfait: il ne suit pas très bien les dépendances, mais a résolu la part du lion du travail pour moi.
Avec Resharper: CTRL+R+O
Appuyez ensuite deux fois sur la flèche vers le bas pour sélectionner Déplacer le type vers un autre espace de noms.
Depuis que la réponse ci-dessus a été fournie (je suppose), cette fonctionnalité a été ajoutée à CodeRush. Placez simplement le carat sur le Type à déplacer et vous verrez une option Move Type to Namespace sur le Refactor! menu contextuel. Cela déplacera le type vers le nouvel espace de noms et mettra à jour les références. Vous souhaiterez peut-être toujours déplacer le fichier vers un dossier de solution qui correspond au nom de l'espace de noms.
Ce n'est pas le meilleur résultat, mais cela peut être fait sans plugins ni outils, uniquement avec Visual Studio. Recherchez et remplacez dans Solution complète, Correspondance casse, Correspondance mot entier. Trouvez quoi: nom de classe, Remplacez par: New.Namespace.ClassName (nom de classe complet).
Si vous avez plus de 100 références de la classe déplacée et d'autres classes dans l'ancien espace de noms qui ne sont pas déplacées, c'est la seule solution infaillible et gratuite que j'ai trouvée. Le seul cas où cela conduit à des erreurs est lorsque vous avez le même nom de classe dans un autre espace de noms.
Si vous ne pouvez pas ou ne voulez pas utiliser Re $ harper, Notepad ++ est votre ami:
TERMINÉ