2009-09-15 6 views
2

Dans this, l'auteur recommande d'implémenter un Wrapper pour la session afin de faciliter le test et le découplage du code du contrôleur. Je voudrais obtenir des idées sur la façon de mettre en œuvre un bon emballage à cette fin.Classe d'assistance pour envelopper la session pour le développement Web MVC.NET?

Je vois que dans CodeProject il y a un échantillon mais il semble bien plus que ce dont j'ai besoin.

EDIT 1:

Ok. Merci à Joshua d'avoir implémenté une classe d'assistance simple. Je poste la classe ici pour avoir votre opinion et voir si vous allez ajouter quelque chose.

public interface ISessionHelper 
{ 
    T Get<T>(string key); 
} 

public class HttpContextSessionHelper : ISessionHelper 
{ 
    private readonly HttpContext _context; 

    public HttpContextSessionHelper(HttpContext context) 
    { 
     _context = context; 
    } 

    public T Get<T>(string key) 
    { 
     object value = _context.Session[key]; 

     return value == null ? default(T) : (T)value; 
    } 
} 

Dans le contrôleur j'ai quelque chose comme ceci:

private readonly ISessionHelper _sessionHelper; 

    public HomeController(ISessionHelper session) 
    { 
     _sessionHelper = session; 
    } 

    public HomeController() 
    { 
     _sessionHelper = new HttpContextSessionHelper(System.Web.HttpContext.Current); 
    } 
+1

Comment "définir" une valeur dans la session avec ce wrapper? –

Répondre

2

L'un des other answers à cette question avait un commentaire à cette website qui a un bon exemple simple d'emballage. Le commentaire a été fait par murki.

Questions connexes