How do you setup a family of .net assemblies that can see each others internals?
I've always put my unit tests in a separate assembly/project, so they don't mingle with shipped production code (although I've read that some like to ship the test for debugging purposes). So let's say I have ProjectA.DLL in it is a class.
internal class DoSomethingSecret {} How do you write a test for that in ProjectA.Test.DLL? I think the answer also involves my next (and the real) question.
Since I started programming in .net, I've not like the public keyword. It just seems so open to the world; but it's been my only gateway for communicating across my own assemblies. I know there is a way to setup a group of (signed??) assemblies as a family, but I don't know how to do it. In this scenario (I'm guessing/hoping), each family member (assembly) can see the internal methods of their relatives?
With this solution, I'll be able to have a group of assemblies that can see the internal methods of each other, and I can mark most of the classes, methods internal. And the only markings of public, are truly items/signatures that I want to expose to the world.
Thanks for your pointers.
[UPDATE :: Solution]
Thanks for the quick comments. This article by Matthew Cochran offers the perfect solution.