Как узнать, является ли сборка частной или общедоступной
-
23-08-2019 - |
Вопрос
У меня есть сборка (это DLL) Я хочу знать, является ли она частной или общедоступной??Как я могу это сделать, для этого существует программа?или Visual Studio может вам подсказать?Спасибо
Решение
Я предполагаю, что вы имеете в виду Концепция изолированных приложений для частных сборок.В этом случае для сборки требуется манифест (по существу, с указанием ее версии), который может находиться в какой-либо локальной папке или в параллельном кэше (папка SxS).Обнаружение манифеста было бы разумным признаком того, что dll является частной (хотя я думаю, что это не 100% тест, которого может быть достаточно для ваших нужд)
Концепция частных сборок на самом деле не имеет отношения к .Net в том смысле, что простое размещение библиотеки dll в некоторой произвольной папке на путь к частной ячейке этого достаточно, в сборке в этом контексте нет ничего особенного.
Существует концепция GAC, грубо говоря, аналогичная кешу SxS для неуправляемых DLL-файлов.Любая сборка там будет больше легко доступно, но концепции public / private, применимые к классам, методам, членам, никоим образом не применимы к сборкам.
В качестве заключительного замечания вы можете (хотя я в это не верю) подумать о 'друг"концепция сборки.Это может быть сделано с помощью Внутренняя видимость атрибут на уровне сборки или через Strongnameidentityперемещение на уровне типа.
Другие советы
К сожалению, я не думаю, что существует хорошо способ разобраться в этом.Лучший способ, который я знаю, это использовать Отражатель чтобы просмотреть декомпилированную версию сборки.
Надеюсь, это поможет, Йен
Что вы имеете в виду, когда собрание является частным или публичным?Может быть, вы имеете в виду, что функция является частной или публичной?
Но я думаю, вы можете попробовать Отражатель.