У меня нет ссылки, но у меня есть дикое предположение о том, почему она по умолчанию является внутренней.
Допустим, у вас есть 3 проекта / сборки: log4net (сторонний API), MyApp.Util и MyApp.Web (веб-проект).Веб-ссылки Util, который ссылается на log4net.Web не ссылается на log4net, и вы хотите сохранить его таким образом.
Внутри DAL, скажем, у вас есть внутренний класс, и один из его членов ссылается на тип, определенный в log4net.Это может быть тип возвращаемого значения или один из типов параметров метода, или тип свойства.
Допустим, вы извлекаете интерфейс из вышеупомянутого класса, включая вышеупомянутый член, который ссылается на log4net.Что ж, если вы сделаете этот элемент общедоступным (частью открытого интерфейса) и ссылаетесь на тип, который его реализует, то требует , чтобы веб-проект ссылался на log4net.
Делая интерфейс внутренним, Интернет может продолжать игнорировать log4net.