Разница между HttpRuntime.Кэш и HttpContext.Текущий.Кэш?


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

3 64

3 ответа:

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

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

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

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

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

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

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

пример использования 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 индексируется ключ параметра находится в кэше. Если это так, он просто возвращает этот объект, если он не запрашивает базу данных. После того, как он извлек документ из базы данных, он затем поместил его в кэш. Если этот метод вызывается снова в течение заданного времени, он получит объект, а не попадание в базу данных.