Bonjour,
J'ai récemment appris le concept de singleton et j'en ai déjà utilisé dans des application type WinForm.
J'explique ce que j'entends par singleton avec l'exemple suivant :
Le but étant d'obtenir (ici via la méthode GetInstance()) une instance d'un objet qui restera la même pendant toute la durée de l'exécution du programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class MaClasse { private static MaClasse instance_; public static MaClasse GetInstance() { if (instance_ == null) { instance_ = new MaClasse(); } return instance_; } private MaClasse() { } }
Dans les applications Windows que j'ai développé, pas de problème car il n'y avait qu'un utilisateur par application.
Or maintenant je travaille sur un site WebForm et quand j'utilise ce type de code, l'instance en question est la même pour tous les utilisateurs... Cette réaction était prévisible mais je me demandais si il existait une technique pour conserver en mémoire une instance d'objet par utilisateur.
Sachant, pour compliquer ma petite affaire, que l'objet en question n'est pas dans le dossier App_code du site mais dans une bibliothèque de classes référencée par le site (un .dll que je compile et place dans /Bin)
A vous de me dire si ce que je souhaite relève de la science fiction
Partager