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
метод .
Примечание
Экземпляр Cache, к которому обращается приведенный ниже фрагмент, является членом объекта, наследуемого 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. |
Применяется к
Потокобезопасность
Данный тип потокобезопасен.