Cache Класс

Определение

Реализует кэш для веб-приложения. Этот класс не наследуется.

public ref class Cache sealed : System::Collections::IEnumerable
public sealed class Cache : System.Collections.IEnumerable
type Cache = class
    interface IEnumerable
Public NotInheritable Class Cache
Implements IEnumerable
Наследование
Cache
Реализации

Примеры

В следующем примере показана страница, показывающая пользователям значение, назначенное элементу в кэше, а затем уведомляет их при удалении элемента из кэша. Он создает RemovedCallback метод, имеющий сигнатуру делегата, чтобы уведомить пользователей CacheItemRemovedCallback об удалении элемента кэша, и он использует CacheItemRemovedReason перечисление, чтобы сообщить им, почему он был удален. Кроме того, свойство используется Cache.Item[] для добавления объектов в кэш и получения значения этих объектов. В методе AddItemToCache используется Cache.Add метод для добавления элемента в кэш. Чтобы использовать делегат CacheItemRemovedCallback, необходимо добавить элемент в кэш с этим методом или методом Cache.Insert, чтобы ASP.NET могли автоматически вызывать правильные методы при удалении элемента. Настраиваемый RemoveItemFromCacheCache.Remove метод использует метод для явного удаления элемента из кэша, что приводит к вызову RemovedCallback метода.

Note

Экземпляр кэша, к которому обращается приведенный ниже фрагмент, является членом Page объекта, наследуемого этим примером.

<html>
 <Script runat=server language="C#">
// <snippet2>
    static bool itemRemoved = false;
    static CacheItemRemovedReason reason;
    CacheItemRemovedCallback onRemove = null;

    public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){
      itemRemoved = true;
      reason = r;
    }
// </snippet2>

// <snippet3>
    public void AddItemToCache(Object sender, EventArgs e) {
        itemRemoved = false;

        onRemove = new CacheItemRemovedCallback(this.RemovedCallback);

        if (Cache["Key1"] == null)
          Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
    }
// </snippet3>

// <snippet4>
    public void RemoveItemFromCache(Object sender, EventArgs e) {
        if(Cache["Key1"] != null)
          Cache.Remove("Key1");
    }
// </snippet4>
 </Script>
 <body>
  <Form runat="server">
   <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
   <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
  <% if (itemRemoved) {
        Response.Write("RemovedCallback event raised.");
        Response.Write("<BR>");
        Response.Write("Reason: <B>" + reason.ToString() + "</B>");
     }
     else {
// <snippet5>
        Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
// </snippet5>
     }
  %>
 </body>
</html>
<%@ Page Language="VB" %>

<html>
 <Script runat=server>
' <snippet2>
    Shared itemRemoved As boolean = false
    Shared reason As CacheItemRemovedReason
    Dim onRemove As CacheItemRemovedCallback

    Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason)
      itemRemoved = true
      reason = r
    End Sub
' </snippet2>

' <snippet3>
    Public Sub AddItemToCache(sender As Object, e As EventArgs)
        itemRemoved = false

        onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

        If (IsNothing(Cache("Key1"))) Then
          Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove)
        End If
    End Sub
' </snippet3>

' <snippet4>
    Public Sub RemoveItemFromCache(sender As Object, e As EventArgs)
        If (Not IsNothing(Cache("Key1"))) Then
          Cache.Remove("Key1")
        End If
    End Sub
' </snippet4>
 </Script>

 <body>
  <Form runat="server">
    <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
    <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
<%
If (itemRemoved) Then
    Response.Write("RemovedCallback event raised.")
    Response.Write("<BR>")
    Response.Write("Reason: <B>" + reason.ToString() + "</B>")
Else
' <snippet5>
    Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>")
' </snippet5>
End If
%>
 </body>
</html>

Комментарии

Один экземпляр этого класса создается для каждого домена приложения, и он остается действительным, пока домен приложения остается активным. Сведения об экземпляре этого класса доступны через Cache свойство HttpContext объекта или Cache свойства Page объекта.

Note

Класс Cache не предназначен для использования вне ASP.NET приложений. Он был разработан и протестирован для использования в ASP.NET для обеспечения кэширования для веб-приложений. Для других типов приложений, таких как консольные приложения или приложения Windows Forms, используйте класс ObjectCache.

Конструкторы

Имя Описание
Cache()

Инициализирует новый экземпляр класса Cache.

Поля

Имя Описание
NoAbsoluteExpiration

Используется в параметре в вызове absoluteExpirationInsert(String, Object) метода, чтобы указать, что элемент не должен истекать. Это поле может использоваться только для чтения.

NoSlidingExpiration

Используется в качестве slidingExpiration параметра в вызове Insert(String, Object) метода Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) , чтобы отключить скользящие сроки действия. Это поле может использоваться только для чтения.

Свойства

Имя Описание
Count

Возвращает количество элементов, хранящихся в кэше.

EffectivePercentagePhysicalMemoryLimit

Получает процент физической памяти, которую можно использовать приложением, прежде чем ASP.NET начнет удалять элементы из кэша.

EffectivePrivateBytesLimit

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

Item[String]

Возвращает или задает элемент кэша по указанному ключу.

Методы

Имя Описание
Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Добавляет указанный элемент в Cache объект с зависимостями, политиками истечения срока действия и приоритетом и делегатом, который можно использовать для уведомления приложения о удалении вставленного элемента из него Cache.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Get(String)

Извлекает указанный Cache элемент из объекта.

GetEnumerator()

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

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

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

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

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

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

Вставляет объект в Cache зависимости и политики окончания срока действия.

Insert(String, Object, CacheDependency)

Вставляет объект в Cache файл или зависимости ключей.

Insert(String, Object)

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

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Remove(String)

Удаляет указанный элемент из объекта приложения Cache .

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IEnumerable.GetEnumerator()

Возвращает перечислитель, который может выполнять итерацию через коллекцию Cache объектов.

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

Применяется к

Потокобезопасность

Этот тип является потокобезопасной.

См. также раздел