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à.