Я предполагаю, что вы имеете в виду Концепция отдельных приложений для частных сборок .
В этом случае сборка требует манифеста (по сути, указывающего его версию) и может находиться в некоторой локальной папке или в кеше Side by Side (папка SxS). Обнаружение манифеста было бы разумным признаком того, что dll является частной (хотя я думаю, что это не 100% тест, его может быть достаточно для ваших нужд)
Концепция частных сборок на самом деле не имеет отношения к .Net в том смысле, что достаточно просто поместить dll в какую-то произвольную папку на пути частного бина приложения *1006*, в сборке нет ничего особенного в этом контексте.
Существует концепция GAC, грубо говоря похожая на кэш SxS для неуправляемых dll. Любая сборка будет более доступной , но общие / частные концепции, применимые к классам, методам, элементам, никоим образом не применимы к сборкам.
В качестве последнего замечания вы можете (хотя я не верю, что вы) думать о концепции сборки друг . Это можно сделать с помощью атрибута InternalsVisibleTo на уровне сборки или с помощью StrongNameIdentityPermission на уровне типа.