Hiding namespaces containing only internal types in a class library?
Solution 1:
It depends on how you're referencing your class library:
- If you have the class library project contained within your solution and use a project reference, you'll always see that empty namespace via Intellisense.
- If you're referencing a compiled dll of your class library, you won't see the namespace popping up in intellisense, provided it contains only internal members.
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.
Solution 2:
I've come up against this before and found no solution, only a workaround which may or may not work in your project. Instead of defining a namespace you could use an nested static class?