I have a class library that has a couple of namespaces containing only internal types.
However, when using the class library in an application project, the namespaces shows up in intellisense, but of course they are empty. Is there any way for me to hide the namespaces completely when using intellisense in other projects?
I've tried to apply EditorBrowsableAttribute
to all the internal classes as well, but what I'd like to do would be to apply that to the namespace, which is of course impossible.
Or is, if I care enough about this, the only option I have to just move the types into a namespace that contains public types?
It depends on how you're referencing your class library:
Try this:
namespace ClassLibrary1
{
namespace Internal
{
internal class InternalClass
{
public int internalStuff { get; set; }
}
}
namespace Public
{
public class PublicClass
{
public int publicStuff { get; set; }
}
}
}
If you reference this via a project reference, you'll see the empty namespace. If you reference a dll of it, you won't.