наткнулся на такой полезный атрибутик:
[assembly: InternalsVisibleTo("TestConsole")]
[assembly: InternalsVisibleTo("TestConsole")]
это - некий отдаленный аналог объявления дружественного класса в C++.
для сборки, чье имя передано в качестве параметра, все internal-объявления выглядят как публичные.
Это полезно при юнит-тестировании для тестирования protected-методов: объявляем метод "protected internal", вписываем атрибут с именем тестовой сборки в AssemblyInfo.cs тестируемой - и - ву а ля - в тестовой сборке наш метод выглядит как публичный.
P.S. в качестве имени сборки нужно указывать содержимое свойства сборки "Assembly Name"