Comment gérer les variables statiques dans une bibliothèque qui est utilisée à la fois pour le bureau et le web?

StackOverflow https://stackoverflow.com/questions/1912890

  •  19-09-2019
  •  | 
  •  

Question

J'ai quelques classes de la bibliothèque C # qui utilisent des variables statiques. J'utilise ces classes de bibliothèque à la fois pour les applications bureautiques et web. Le problème est, comme je viens de découvrir, les variables statiques ne vont pas vers le bas si bien sur un serveur Web; les valeurs sont partagées entre toutes les sessions en utilisant le site Web!

Comment puis-je conserver les caractéristiques d'une variable statique pour une utilisation dans mes applications de bureau, tout en veillant à ce que chaque session sur mon serveur web a ses propres valeurs indépendantes pour ces variables - mais dans la session elle-même, il se comporte encore vraiment statique?

Était-ce utile?

La solution

valeurs de variables statiques sont partagés entre tous les fils dans un domaine d'application. Dans une application ASP.NET la méthode recommandée pour stocker des données qui est lié uniquement à l'utilisateur actuel est le session .

Si vous pouvez modifier le code de cette bibliothèque partagée, je vous conseille d'extraire une interface de ces variables statiques qui fourniront un mécanisme pour stocker des valeurs. Cela permettra à chaque application de fournir sa propre implémentation. Pour une application Windows, vous pouvez utiliser une implémentation qui utilise en interne une variable statique. Pour une application ASP.NET, vous pouvez utiliser la session. Mais dans tous les cas, vous qu'exposer une interface. Cela aura également l'effet positif de rendre votre code plus facile à tester l'appareil.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top