Контроллер доступа Контекст / TempData из бизнес-объектов - PullRequest
0 голосов
/ 05 марта 2011

Я пытаюсь создать поставщика сеанса / временных данных, который можно поменять местами.Поставщик по умолчанию будет работать поверх asp.net mvc, и ему необходимо было получить доступ к .net mvc TempData из класса бизнес-объектов.Я знаю, что tempdata доступна через контекст контроллера, но я не могу найти, выставлен ли он через HttpContext или что-то еще.Я действительно не хочу передавать контекст Контроллера в качестве аргумента, так как это ослабило бы мое определение интерфейса, поскольку это требуется только поставщику сеансов на основе asp.net, другие (использующие NoSQL DB и т. Д.) Не заботятся о контексте Контроллера.

Чтобы уточнить дальше, добавив немного больше кода здесь.мой интерфейс ISession выглядит следующим образом.и когда этот код поступит в производство, ожидается, что сессия / временные данные будут работать с использованием NoSql db.Но мне также нравится иметь другую реализацию, которая работает поверх сеанса / темпданных mvc asp.net для моего тестирования dev и т. Д.

открытый интерфейс ISession

{
    T GetTempData<T>(string key);

    void PutTempData<T>(string key, T value);

    T GetSessiondata<T>(string key);

    void PutSessiondata<T>(string key, T value);

}

1 Ответ

0 голосов
/ 05 марта 2011

Я не знаю точно, что вы пытаетесь сделать, но TempDataDictionary реализует IDictionary<string, object>, чтобы вы могли сделать так, чтобы ваши бизнес-объекты принимали это как параметр или использовали конструктор.Тогда ваш контроллер может передать TempData в качестве параметра бизнес-объекту.Благодаря использованию словарного интерфейса ваши бизнес-объекты больше не зависят от ASP.NET MVC.

...