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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top