Ogni volta che ho utilizzato InternalsVisibleToAttribute durante lo sviluppo di un'API, sembra un po 'puzzolente. Come l'API non viene progettata in modo veramente incapsulato. Molte volte questo è fuori dai limiti di tempo - esporre le funzionalità interne in un modo elegante e incapsulato richiede tempo e molte volte solo un altro assembly ne avrà bisogno, rendendo InternalsVisibleToAttribute come la soluzione corretta.
InternalsVisibleToAttribute indica un odore di design, come un caso di refactoring andato male, o un'indicazione che i due gruppi non dovrebbero essere separati?
Nota: comprendo la necessità di utilizzare InternalsVisibleToAttribute per il test delle unità. Questa domanda non si riferisce al test dell'unità.