Я нахожусь в процессе создания библиотеки, которая должна использоваться различными приложениями. Эти приложения не должны видеть детали реализации библиотеки, а просто должны быть представлены с удобным интерфейсом.
Чтобы получить четкую структуру проекта, я создал несколько проектов в своем решении. Некоторые проекты содержат только код, который не должен быть виден внешнему миру, потому что его следует использовать только внутри. Однако этот код должен быть доступен за пределами проекта.
Чтобы решить эту проблему, я создал несколько внутренних классов и методов, а затем пометил их сборки атрибутом InternalsVisibleTo в файле AssemblyInfo.cs. Это работает, как и ожидалось.
Однако мне интересно, действительно ли это хорошая практика. В конце концов, я обхожу внутренний модификатор доступа, который может запутать других разработчиков.
Единственный другой вариант, который у меня есть, - это создать только один проект, который затем должен содержать весь внутренний код, помеченный как внутренний. Однако мне не нравится это решение, поскольку оно будет означать, что у меня больше нет четкого представления о зависимостях в моем коде.
Какова наилучшая практика в этой ситуации?