Вспомогательный класс, чтобы обернуть Session для веб-разработки MVC.NET? - PullRequest
2 голосов
/ 15 сентября 2009

В этой публикации автор рекомендует использовать обертку для сессии, чтобы упростить тестирование и разделение кода контроллера. Я хотел бы получить идеи о том, как реализовать хорошую оболочку для этой цели.

Я вижу, что в CodeProject есть один пример, но он выглядит намного больше, чем мне нужно.

РЕДАКТИРОВАТЬ 1:

Ok. Благодаря Джошуа я реализовал и простой класс сессионного помощника. Я публикую здесь урок, чтобы узнать ваше мнение и посмотреть, добавите ли вы что-нибудь.

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;
    }
}

В контроллере у меня что-то вроде этого:

    private readonly ISessionHelper _sessionHelper;

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

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

1 Ответ

2 голосов
/ 15 сентября 2009

Один из других ответов на этот вопрос имел комментарий к этому веб-сайту , в котором есть хороший простой пример оболочки. Комментарий был сделан murki .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...