Como saber se um assembly é privada ou pública
-
23-08-2019 - |
Pergunta
Eu tenho um assembly (é um DLL) Eu quero saber se é privado ou público ?? Como posso fazer isso, existe um programa para fazer isso? ou Visual Studio posso dizer? Graças
Solução
Eu suponho que você está se referindo a isolados Applications Conceito de Assembléias privados . Neste caso, a montagem requer um manifesto (essencialmente indicando sua versão) e pode estar em alguma pasta local ou no Side by Side de cache (a pasta SxS). Detectando o manifesto seria uma indicação razoável a dll é privado (embora eu acho que isso não é um teste de 100%, pode ser suficiente para as suas necessidades)
O conceito de conjuntos privados não é realmente relevante para .Net no sentido de que basta colocar uma dll em alguma pasta arbitrária na de Aplicação caminho bin privado é suficiente, não há nada de especial sobre a montagem neste contexto.
Não é o conceito do GAC, a grosso modo semelhante ao cache SxS para DLLs não gerenciados. Qualquer montagem em que haverá mais facilmente acessíveis, mas os conceitos / público-privadas aplicáveis ??a classes, métodos, membros de modo algum é aplicável às assembleias.
Como nota final pode (embora eu não acredito que você é) estar pensando no ' amigo ' conceito de montagem. Isto pode ser feito através do atributo InternalsVisibleTo ao nível da montagem ou através StrongNameIdentityPermission em o nível do tipo.
Outras dicas
Infelizmente eu não acho que há um boa maneira de descobrir isso. A melhor maneira que eu conheço é usar refletor para ver uma versão descompilado do montagem.
Espero que ajude, Ian
O que quer dizer um assembly é privada ou pública? Talvez você quer dizer função é privado ou público?
Mas eu acho que você pode tentar refletor .