Conjuntos de tratamento compartilhados em GAC Incluídos
-
03-07-2019 - |
Pergunta
Eu sei que quando a criação de uma DLL e declarando itens como "Shared" (estática em C #) que são instanciado quando chamado pela primeira vez, e, em seguida, que as vidas de referência objeto sobre como a única referência.
Assim, declarando uma propriedade string compartilhados uma vez conjunto pode ser chamado novamente para recuperar o mesmo valor. E que a segurança da linha é então uma preocupação principal dentro do domínio da aplicação.
O que acontece fora do domínio da aplicação. Se colocarmos o assembly no Cache Global Application (GAC) quantas instâncias existirá?
Por exemplo, uma propriedade estática chamada "MyFileName" em uma .dll GAC'ed.
Então nós temos duas aplicações chamando o arquivo .dll GAC'ed. Quantas ocorrências de "MyFileName" existiria? Será que muda para MyFileName de Aplicação uma cópia para o valor que Aplicação Dois usos?
Solução
A dll é instanciado dentro do AppDomain, por isso há tantas cópias diferentes como existem AppDomains. Os dados não transferir entre AppDomains. Colocar a DLL no GAC apenas torna disponível a tudo em um só lugar, isso não muda o modelo de memória do .net.