Hello,
I just discovered that, if you’re using open-source C# classes in Unity, even if you use namespaces (thus successfully requiring using MyNamespace directives for your classes) all internal members are considered public!
This is a terrible thing: anybody knows a workaround (without compiling to a DLL - I need the code to stay open)?
Here’s a very late answer, but I discovered this lost question of mine and thought I’d complete it.
This was a silly question: since I was coming from ActionScript I had completely misunderstood how internals work in C#. Simply put, the internal keyword makes things “public” for the whole assembly that defines it. Since Unity compiles all your lose code in a commmon assembly (but for a few exceptions) all internal members among your lose code become accessible.
In short: no workaround other than rolling your own assemblies.