Didn’t need it until now, as now I wrote my first unit test on an internal class, with the unit test in a separate assembly.
Visual Studio 2010 suggested adding the InternalsVisibleTo Attribute to the assembly containing the internal class specifying that the unit test assembly would have access to it.
For me that felt up-side-down, but thinking again it is logical, but still doesn’t feel well.
This is what it does:
The InternalVisibleToAttribute was added in .Net 2.0 and most people seem to be using it in order expose internal methods to external unit test classes. However, there is nothing to prevent you from using it in non-testing situations., although I have not seen a good reason other then unit testing to use it.