Quelle est la meilleure façon de fournir un accès fortement typé à l'objet de session ? J'ai l'intention d'activer l'option Strict, ce qui amène le compilateur à se plaindre de ma technique de programmation paresseuse consistant à accéder directement à l'objet de session :
Dim blah As Integer = Session("Blah")
Ma première idée est de créer une classe qui englobe la session et fournit des propriétés fortement typées pour les informations stockées dans la session. Cependant, je ne peux pas décider si la classe doit être un singleton, ou instanciée à chaque utilisation, ou encore où le code doit résider (c'est-à-dire dans le projet Web ou dans une bibliothèque de classes).
Je penche pour un singleton dans ma bibliothèque de classes, mais je ne sais pas si c'est la meilleure solution, ou si je manque d'autres possibilités.
Solution proposée :
Public Class SessionAccess
Public Shared Property Blah(ByVal session As HttpSessionState) As Integer
Get
Return Convert.ToInt32(session("Blah"))
End Get
Set(ByVal value As Integer)
session("Blah") = value
End Set
End Property
End Class
Code Behind :
Dim blah As Integer = SessionAccess.Blah(session)