In .NET, you can use the InternalsVisibleToAttribute in your class library to make your internal types visible to your unit test project.
That way, you can keep your class internal and still use it from other assemblies that you give access.
You use it like this:
[assembly:InternalsVisibleTo("NameOfYourUnitTestProject")]