Comment faire en sorte que l’espace de noms C # fonctionne comme les packages Java afin qu’ils soient renommés automatiquement lors du déplacement?

Je viens de Java et je vois que le paquet en Java est très pratique. Lorsque vous déplacez une classe dans un autre package, celui-ci change automatiquement. (bien sûr, par IDE comme Eclipse ou Netbean)

Mais C # utilise un espace de noms et mon espace de noms n’est pas renommé automatiquement comme en Java. Par exemple, j’ai un fichier dont l’espace de noms est com.app et je le mets dans com.app , mais plus tard, je déplace ce fichier dans le dossier com.lib et son espace de noms est toujours com.app . Donc, je trouve cela difficile à gérer car je le déplace manuellement.

S’il vous plaît donnez-moi de l’aide pour résoudre mon problème. (cet espace de noms de fichier est nommé par le dossier qu’il contient et, lorsque je passe à un autre, je le change automatiquement). Pouvons-nous le faire?

Je résous le problème en utilisant un plugin IDE appelé Resharper . (Parmi de nombreuses fonctionnalités utiles) il est mis en surbrillance lorsqu’un espace de nom est incorrect (en fonction de la hiérarchie des dossiers et de l’espace de nom racine de l’assembly) et peut le réparer pour vous.

Notez que contrairement à Java, il y a parfois des raisons très valables pour qu’une classe soit dans un espace de noms différent de celui induit par la structure de répertoires. Un bon exemple pourrait être les classes de méthodes d’extension, qui doivent être incluses dans la classe qui les appelle. Par conséquent, il est courant d’avoir:

 /myProject /extensions /MyExtensionMethodClass.cs 

avec un espace de noms tel que myProject (afin que les méthodes d’extension puissent être utilisées n’importe où dans myProject sans directive using)

C’est parce que C # a le concept de classes partielles, c’est-à-dire que vous pouvez répartir votre classe C # sur plusieurs fichiers au lieu de la coder dans un seul fichier, tel que Java. Pour cette raison, les espaces de noms dans .Net sont des conteneurs dissortingbués au lieu de conteneurs centralisés, définis par votre espace de noms ou votre opérateur.