Объединить глобальную и пользовательскую информацию (кеш и сеанс) - PullRequest
0 голосов
/ 16 марта 2011

Чтобы сделать веб-приложение быстрее, я бы хотел реализовать кеширование.Есть класс с различными списками элементов, которые я хотел бы сохранить доступными в кеше, потому что большая часть информации одинакова для каждого пользователя (глобальная).Но на элементах есть некоторая специфичная для пользователя информация, которую я должен хранить и быстро сохранять доступной (сессия?).

Я думал о какой-то комбинации с кешем и сессией, но я думаю, что это невозможно?Информация используется во многих местах, поэтому я хотел бы, чтобы информация была как можно ближе друг к другу.У кого-нибудь есть хорошее решение для этой проблемы?

1 Ответ

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

Несмотря на то, что нет встроенного способа их одновременного использования, вы можете написать свой класс-обертку, который извлекает всю информацию из обеих частей, например:

class Information
{
  public string UserName { get { return this.GetFromSession("UserName"); } }
  public string WebSiteName { get { return this.GetFromCache("WebSiteName"); } }

  private string GetFromSession(string key)
  { /* get information from session */ }

  private string GetFromCache(string key)
  { /* get information from cache */}
}

И тогда вы можете просто использовать:

Information info = new Information();
Response.Write(info.UserName);
Response.Write(info.WebSiteName);

Помогает ли это?

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