2 votes

Variables statiques .Net et versions de DLL dans le GAC

J'ai une question concernant les classes/variables statiques et les versions de DLL.

Si j'ai une variable statique dans une DLL (version 1) et que je la charge dans le GAC, puis que je crée une version plus récente de la DLL (version 2) et que je la charge dans le GAC, lorsque l'une ou l'autre des versions sera appelée, fera-t-elle référence à la même variable dans la mémoire ?

Exemple :

  • Le client 1 définit une variable statique IsAuthenticated = True dans la version 1 de la DLL.
  • Le client 2 obtient la valeur de la même variable statique ( IsAuthenticated ), mais il fait référence à la version 2 de la DLL.

Les espaces de noms sont les mêmes.

Vont/devraient IsAuthenticated sera Vrai lorsque le Client 2 l'appellera ?

2voto

Jon Points 194296

Non, chaque (version d'une) DLL possède sa propre copie de toutes les variables statiques, même si les deux DLL sont chargées dans le même processus. Partage de la mémoire à travers Un tel processus (c'est mon interprétation de la question) serait non seulement un cauchemar technique, mais aussi une très mauvaise idée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X