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 |
Используется в параметре в вызове |
| NoSlidingExpiration |
Используется в качестве |
Свойства
| Имя | Описание |
|---|---|
| Count |
Возвращает количество элементов, хранящихся в кэше. |
| EffectivePercentagePhysicalMemoryLimit |
Получает процент физической памяти, которую можно использовать приложением, прежде чем ASP.NET начнет удалять элементы из кэша. |
| EffectivePrivateBytesLimit |
Возвращает количество байтов, доступных для кэша. |
| Item[String] |
Возвращает или задает элемент кэша по указанному ключу. |
Методы
| Имя | Описание |
|---|---|
| Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Добавляет указанный элемент в Cache объект с зависимостями, политиками истечения срока действия и приоритетом и делегатом, который можно использовать для уведомления приложения о удалении вставленного элемента из него |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Get(String) |
Извлекает указанный Cache элемент из объекта. |
| GetEnumerator() |
Извлекает перечислитель словаря, используемый для итерации с помощью параметров ключа и их значений, содержащихся в кэше. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Вставляет объект в 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 на основе указанного типа. |
Применяется к
Потокобезопасность
Этот тип является потокобезопасной.