Masquer les espaces de noms contenant uniquement des types internes dans une bibliothèque de classes?

J’ai une bibliothèque de classes qui possède deux espaces de noms contenant uniquement des types internes.

Cependant, lorsque vous utilisez la bibliothèque de classes dans un projet d’application, les espaces de noms apparaissent dans intellisense, mais bien sûr, ils sont vides. Y a-t-il un moyen de cacher complètement les espaces de noms lors de l’utilisation de intellisense dans d’autres projets?

J’ai essayé d’appliquer aussi EditorBrowsableAtsortingbute à toutes les classes internes, mais je voudrais l’appliquer à l’espace de noms, ce qui est bien sûr impossible.

Ou est-ce que, si je me soucie assez de ceci, la seule option que je dois juste déplacer les types dans un espace de noms qui contient des types publics?

Cela dépend de la façon dont vous référencez votre bibliothèque de classes:

  • Si vous avez le projet de bibliothèque de classes contenu dans votre solution et utilisez une référence de projet, vous verrez toujours cet espace de noms vide via Intellisense.
  • Si vous faites référence à une DLL compilée de votre bibliothèque de classes, vous ne verrez pas apparaître l’espace de noms dans intellisense, à condition qu’il ne contienne que des membres internes.

Essaye ça:

 namespace ClassLibrary1 { namespace Internal { internal class InternalClass { public int internalStuff { get; set; } } } namespace Public { public class PublicClass { public int publicStuff { get; set; } } } } 

Si vous faites référence à ceci via une référence de projet, vous verrez l’espace de noms vide. Si vous en référencez un dll, vous ne le ferez pas.

Je me suis heurté à cela avant et je n’ai trouvé aucune solution, seulement une solution de contournement qui peut ou non fonctionner dans votre projet. Au lieu de définir un espace de noms, vous pouvez utiliser une classe statique nestede?