I know that is possible change the visibility with:
internal class Foo
[InternalsVisibleTo] attribute is an assembly-level attribute, meaning that if you define it once, it already applies to the entire assembly.
So that line you show only needs to be included only once in your project to apply to all internal types.
I'd recommend moving it to where the other assembly-level attributes are specified: in the
AssemblyInfo.cs file in the Properties folder of the project.