If you're writing a reusable framework, you might want to avoid declaring a class or method as public if you don't want to support it as part of the interface. At the same time, you might want to use it from a different internal assembly--especially if you're writing tests. Believe it or not, there is a way to achieve both seemingly contradictory ends in one codebase. Read on to find out how you can have your cake and eat it, too!