Как узнать, является ли сборка частной или публичной - PullRequest
1 голос
/ 15 февраля 2009

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

Ответы [ 3 ]

3 голосов
/ 15 февраля 2009

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

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

Существует концепция GAC, грубо говоря похожая на кэш SxS для неуправляемых dll. Любая сборка будет более доступной , но общие / частные концепции, применимые к классам, методам, элементам, никоим образом не применимы к сборкам.

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

0 голосов
/ 15 февраля 2009

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

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

0 голосов
/ 15 февраля 2009

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

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

...