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 могли автоматически вызывать правильные методы при удалении элемента. Пользовательский RemoveItemFromCache
метод использует Cache.Remove метод для явного удаления элемента из кэша, что приводит к вызову RemovedCallback
метода.
Примечание
Экземпляр кэша, к которому обращается приведенный ниже фрагмент кода, является членом 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 объекта.
Примечание
Класс 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) |
Вставка элемента в объект Cache с ключом кэша для ссылки на его расположение с помощью значений по умолчанию, предоставленных перечислением CacheItemPriority. |
Insert(String, Object, CacheDependency) |
Вставка объекта в Cache, имеющий зависимости файла или ключа. |
Insert(String, Object, CacheDependency, DateTime, TimeSpan) |
Вставка объекта в Cache с зависимостями и политиками сроков действия. |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) |
Вставка объекта в объект Cache с зависимостями, политиками сроков действия и приоритетов, а также с делегатом, которого можно использовать для уведомления приложения при удалении вставленного элемента из |
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback) |
Вставляет в объект Cache объект с зависимостями, политиками сроков действия и делегатом, который можно использовать для уведомления приложения перед удалением элемента из кэша. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Remove(String) |
Удаление указанного элемента из объекта Cache приложения. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
IEnumerable.GetEnumerator() |
Возвращение перечислителя, который может осуществлять итерацию в коллекции объектов Cache. |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |
Применяется к
Потокобезопасность
Данный тип потокобезопасен.