Как узнать, является ли сборка частной или общедоступной

StackOverflow https://stackoverflow.com/questions/550544

Вопрос

У меня есть сборка (это DLL) Я хочу знать, является ли она частной или общедоступной??Как я могу это сделать, для этого существует программа?или Visual Studio может вам подсказать?Спасибо

Это было полезно?

Решение

Я предполагаю, что вы имеете в виду Концепция изолированных приложений для частных сборок.В этом случае для сборки требуется манифест (по существу, с указанием ее версии), который может находиться в какой-либо локальной папке или в параллельном кэше (папка SxS).Обнаружение манифеста было бы разумным признаком того, что dll является частной (хотя я думаю, что это не 100% тест, которого может быть достаточно для ваших нужд)

Концепция частных сборок на самом деле не имеет отношения к .Net в том смысле, что простое размещение библиотеки dll в некоторой произвольной папке на путь к частной ячейке этого достаточно, в сборке в этом контексте нет ничего особенного.

Существует концепция GAC, грубо говоря, аналогичная кешу SxS для неуправляемых DLL-файлов.Любая сборка там будет больше легко доступно, но концепции public / private, применимые к классам, методам, членам, никоим образом не применимы к сборкам.

В качестве заключительного замечания вы можете (хотя я в это не верю) подумать о 'друг"концепция сборки.Это может быть сделано с помощью Внутренняя видимость атрибут на уровне сборки или через Strongnameidentityперемещение на уровне типа.

Другие советы

К сожалению, я не думаю, что существует хорошо способ разобраться в этом.Лучший способ, который я знаю, это использовать Отражатель чтобы просмотреть декомпилированную версию сборки.

Надеюсь, это поможет, Йен

Что вы имеете в виду, когда собрание является частным или публичным?Может быть, вы имеете в виду, что функция является частной или публичной?

Но я думаю, вы можете попробовать Отражатель.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top