Разница между HttpRuntime.Cache и HttpContext.Current.Cache? - PullRequest
64 голосов
/ 14 мая 2009

В чем разница между HttpRuntime.Cache и HttpContext.Current.Cache?

Ответы [ 3 ]

64 голосов
/ 14 мая 2009

Нахожу следующую деталь от http://theengineroom.provoke.co.nz/archive/2007/04/27/caching-using-httpruntime-cache.aspx

Для кеширования я изучил использование HttpContext.Current.Cache но после читая другие блоги, я обнаружил, что кэширование с использованием HttpContext HttpRuntime.Cache, чтобы сделать фактический кэширование. Преимущество использования HttpRuntime напрямую заключается в том, что это всегда доступны, например, в Консольные приложения и в модуле тесты.

Использовать HttpRuntime.Cache просто. Объекты могут храниться в кеше и индексируются строкой. Вместе с ключ и объект для кэширования другого Важным параметром является истечение срока время. Этот параметр устанавливает время до того, как предмет упал с кэш.

Вот хорошая ссылка для вас.

Еще один хороший ресурс.

19 голосов
/ 14 мая 2009

Кэширование с использованием HttpContext использует HttpRuntime.Cache для фактического кэширования. Преимущество использования HttpRuntime напрямую заключается в том, что он всегда доступен в консольных приложениях и в модульных тестах.

1 голос
/ 28 мая 2016

Использование HttpRuntime.Cache проще в использовании, чем HttpContext.Current.Cache. Как уже говорилось, объекты могут храниться в кэше и индексироваться строкой. Также в модульном тесте и консоли HttpRuntime это доступно.

Вот пример использования HttpRuntime.Cache.

public static XmlDocument GetStuff(string sKey) 
{
XmlDocument xmlCodes;
xmlCodes = (XmlDocument) HttpRuntime.Cache.Get( sKey );
if (xmlCodes == null)
{
      xmlCodes = SqlHelper.ExecuteXml(new dn("Nodes", "Node"), "Get_Stuff_From_Database", sKey);
      HttpRuntime.Cache.Add(sKey, xmlCodes, null,
      DateTime.UtcNow.AddMinutes(1.0),
      System.Web.Caching.Cache.NoSlidingExpiration,
      System.Web.Caching.CacheItemPriority.Normal, null);
}
return xmlCodes;
}

Что на самом деле делает этот пример:


Метод GetStuff принимает строковый параметр, который используется для получения набора элементов из базы данных. Сначала метод проверяет, находится ли XmlDocument, индексированный ключом параметра, в кэше. Если это так, он просто возвращает этот объект, если нет, он запрашивает базу данных. После получения документа из базы данных он помещается в кэш. Если этот метод вызывается снова в течение установленного времени, он получит объект, а не попадет в базу данных.

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