MemoryCache MemoryCache MemoryCache MemoryCache Class

Определение

Представляет тип, реализующий кэш, расположенный в памяти.Represents the type that implements an in-memory cache.

public ref class MemoryCache : System::Runtime::Caching::ObjectCache, IDisposable
public class MemoryCache : System.Runtime.Caching.ObjectCache, IDisposable
type MemoryCache = class
    inherit ObjectCache
    interface IEnumerable
    interface IDisposable
Public Class MemoryCache
Inherits ObjectCache
Implements IDisposable
Наследование
MemoryCacheMemoryCacheMemoryCacheMemoryCache
Реализации

Примеры

В следующем примере объявляется ссылку на экземпляр по умолчанию для кэша памяти.The following example declares a reference to the default memory cache instance. Запись кэша использует CacheItemPolicy объект для предоставления сведений о вытеснения и истечения срока действия записи кэша.The cache entry uses a CacheItemPolicy object to provide eviction and expiration details for the cache entry. Он также использует ChangeMonitor объекта, чтобы отслеживать состояние источника данных (который представляет собой файл) в файловой системе.It also uses a ChangeMonitor object to monitor the state of the source data (which is a file) on the file system.

Private Sub btnGet_Click(ByVal sender As Object, ByVal e As EventArgs)   
    Dim cache As ObjectCache = MemoryCache.[Default]   
    Dim fileContents As String = TryCast(cache("filecontents"), String)   

    If fileContents Is Nothing Then   
        Dim policy As New CacheItemPolicy()   
        Dim filePaths As New List(Of String)()   
        filePaths.Add("c:\cache\example.txt")   

        policy.ChangeMonitors.Add(New HostFileChangeMonitor(filePaths))   

        ' Fetch the file contents.  
        fileContents = File.ReadAllText("c:\cache\example.txt")   

        cache.[Set]("filecontents", fileContents, policy)   
    End If   

    Label1.Text = fileContents  
End Sub  
private void btnGet_Click(object sender, EventArgs e)  
{  
    ObjectCache cache = MemoryCache.Default;  
    string fileContents = cache["filecontents"] as string;  

    if (fileContents == null)  
    {  
        CacheItemPolicy policy = new CacheItemPolicy();  

        List<string> filePaths = new List<string>();  
        filePaths.Add("c:\\cache\\example.txt");  

        policy.ChangeMonitors.Add(new   
        HostFileChangeMonitor(filePaths));  

        // Fetch the file contents.  
        fileContents =   
            File.ReadAllText("c:\\cache\\example.txt");  

        cache.Set("filecontents", fileContents, policy);  
    }  

    Label1.Text = fileContents;  
}  

Комментарии

Класс MemoryCache — это конкретная реализация абстрактного класса ObjectCache .The MemoryCache class is a concrete implementation of the abstract ObjectCache class.

Примечание

MemoryCache Класса похоже на ASP.NET Cache класса.The MemoryCache class is similar to the ASP.NET Cache class. MemoryCache Класс имеет множество свойств и методов для доступа к кэшу, который станет привычным для вас при использовании ASP.NET Cache класса.The MemoryCache class has many properties and methods for accessing the cache that will be familiar to you if you have used the ASP.NET Cache class. Основные различия между Cache и MemoryCache классы являются, MemoryCache класса был изменен, чтобы он мог использоваться с .NET Framework.NET Framework приложений, которые не являются приложениями ASP.NET.The main differences between the Cache and MemoryCache classes are that the MemoryCache class has been changed to make it usable by .NET Framework.NET Framework applications that are not ASP.NET applications. Например MemoryCache класс не имеет зависимостей от System.Web сборки.For example, the MemoryCache class has no dependencies on the System.Web assembly. Еще одно различие заключается в том, что можно создать несколько экземпляров MemoryCache класс для использования в одном приложении, а также в том же AppDomain экземпляра.Another difference is that you can create multiple instances of the MemoryCache class for use in the same application and in the same AppDomain instance.

MemoryCache Класс не позволяет null как значение в кэше.The MemoryCache class does not allow null as a value in the cache. Любая попытка добавить или изменить запись со значением null завершится ошибкой.Any attempt to add or change a cache entry with a value of null will fail.

MemoryCache Тип не реализует кэшировать регионах.The MemoryCache type does not implement cache regions. Таким образом, при вызове MemoryCache методы, которые реализуют базовые методы, которые содержат параметр области, не передавайте значение параметра.Therefore, when you call MemoryCache methods that implement base methods that contain a parameter for regions, do not pass a value for the parameter. Методам, использующим параметр области указать значение по умолчанию null значение.The methods that use the region parameter all supply a default null value. Например MemoryCache.AddOrGetExisting имеет перегрузку метода regionName — значение по умолчанию null.For example, the MemoryCache.AddOrGetExisting method overload has a regionName parameter whose default value is null.

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

MemoryCache(String, NameValueCollection) MemoryCache(String, NameValueCollection) MemoryCache(String, NameValueCollection) MemoryCache(String, NameValueCollection)

Инициализирует новый экземпляр класса MemoryCache.Initializes a new instance of the MemoryCache class.

MemoryCache(String, NameValueCollection, Boolean) MemoryCache(String, NameValueCollection, Boolean) MemoryCache(String, NameValueCollection, Boolean) MemoryCache(String, NameValueCollection, Boolean)

Инициализирует новый экземпляр класса MemoryCache.Initializes a new instance of the MemoryCache class.

Свойства

CacheMemoryLimit CacheMemoryLimit CacheMemoryLimit CacheMemoryLimit

Получает объем физической памяти на компьютере (в байтах), который может использоваться кэшем.Gets the amount of memory on the computer, in bytes, that can be used by the cache.

Default Default Default Default

Получает ссылку на экземпляр MemoryCache по умолчанию.Gets a reference to the default MemoryCache instance.

DefaultCacheCapabilities DefaultCacheCapabilities DefaultCacheCapabilities DefaultCacheCapabilities

Получает описание функций, предоставляемых кэшем.Gets a description of the features that the cache provides.

Item[String] Item[String] Item[String] Item[String]

Получает или задает значение в кэше, используя свойство индексатора по умолчанию для экземпляра класса MemoryCache.Gets or sets a value in the cache by using the default indexer property for an instance of the MemoryCache class.

Name Name Name Name

Получает имя кэша.Gets the name of the cache.

PhysicalMemoryLimit PhysicalMemoryLimit PhysicalMemoryLimit PhysicalMemoryLimit

Получает процентную долю физической памяти, которую может использовать кэш.Gets the percentage of physical memory that the cache can use.

PollingInterval PollingInterval PollingInterval PollingInterval

Получает максимальное время, после истечения которого кэш обновляет статистику памяти.Gets the maximum time after which the cache updates its memory statistics.

Методы

Add(CacheItem, CacheItemPolicy) Add(CacheItem, CacheItemPolicy) Add(CacheItem, CacheItemPolicy) Add(CacheItem, CacheItemPolicy)

Вставляет запись кэша в кэш как экземпляр CacheItem и добавляет сведения о способе вытеснения записи.Inserts a cache entry into the cache as a CacheItem instance, and adds details about how the entry should be evicted.

Add(String, Object, CacheItemPolicy, String) Add(String, Object, CacheItemPolicy, String) Add(String, Object, CacheItemPolicy, String) Add(String, Object, CacheItemPolicy, String)

При переопределении в производном классе вставляет запись в кэш и задает сведения о способе удаления записи.When overridden in a derived class, inserts a cache entry into the cache, specifying information about how the entry will be evicted.

(Inherited from ObjectCache)
Add(String, Object, DateTimeOffset, String) Add(String, Object, DateTimeOffset, String) Add(String, Object, DateTimeOffset, String) Add(String, Object, DateTimeOffset, String)

При переопределении в производном классе используется для вставки записи в кэш, без перезаписи существующей в кэше записи.When overridden in a derived class, inserts a cache entry into the cache without overwriting any existing cache entry.

(Inherited from ObjectCache)
AddOrGetExisting(CacheItem, CacheItemPolicy) AddOrGetExisting(CacheItem, CacheItemPolicy) AddOrGetExisting(CacheItem, CacheItemPolicy) AddOrGetExisting(CacheItem, CacheItemPolicy)

Добавляет запись в кэш, используя заданный экземпляр CacheItem и сведения о способе удаления записи.Adds a cache entry into the cache using the specified CacheItem instance and details about how to evict the entry.

AddOrGetExisting(String, Object, CacheItemPolicy, String) AddOrGetExisting(String, Object, CacheItemPolicy, String) AddOrGetExisting(String, Object, CacheItemPolicy, String) AddOrGetExisting(String, Object, CacheItemPolicy, String)

Вставляет запись в кэш, используя указанную пару "ключ-значение" и заданные сведения о методе ее удаления.Inserts a cache entry into the cache using the specified key and value and the specified details for how it is to be evicted.

AddOrGetExisting(String, Object, DateTimeOffset, String) AddOrGetExisting(String, Object, DateTimeOffset, String) AddOrGetExisting(String, Object, DateTimeOffset, String) AddOrGetExisting(String, Object, DateTimeOffset, String)

Добавляет запись в кэш, используя заданную пару "ключ-значение" и абсолютное значение срока действия.Adds a cache entry into the cache using the specified key and a value and an absolute expiration value.

Contains(String, String) Contains(String, String) Contains(String, String) Contains(String, String)

Определяет, существует ли в кэше запись кэша.Determines whether a cache entry exists in the cache.

CreateCacheEntryChangeMonitor(IEnumerable<String>, String) CreateCacheEntryChangeMonitor(IEnumerable<String>, String) CreateCacheEntryChangeMonitor(IEnumerable<String>, String) CreateCacheEntryChangeMonitor(IEnumerable<String>, String)

Создает объект CacheEntryChangeMonitor, который может активировать события в ответ на изменения указанных записей кэша.Creates a CacheEntryChangeMonitor object that can trigger events in response to changes to specified cache entries.

Dispose() Dispose() Dispose() Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса MemoryCache.Releases all resources that are used by the current instance of the MemoryCache class.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
Get(String, String) Get(String, String) Get(String, String) Get(String, String)

Возвращает запись из кэша.Returns an entry from the cache.

GetCacheItem(String, String) GetCacheItem(String, String) GetCacheItem(String, String) GetCacheItem(String, String)

Возвращает заданную запись из кэша в виде экземпляра CacheItem.Returns the specified entry from the cache as a CacheItem instance.

GetCount(String) GetCount(String) GetCount(String) GetCount(String)

Возвращает общее число записей в кэше.Returns the total number of cache entries in the cache.

GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Создает перечислитель, который можно использовать для перебора коллекции записей кэша.Creates an enumerator that can be used to iterate through a collection of cache entries.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetLastSize(String) GetLastSize(String) GetLastSize(String) GetLastSize(String)

Получает размер именованной области.Gets the size of the named region.

GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
GetValues(IEnumerable<String>, String) GetValues(IEnumerable<String>, String) GetValues(IEnumerable<String>, String) GetValues(IEnumerable<String>, String)

Возвращает набор записей кэша, соответствующих заданным ключам.Returns a set of cache entries that correspond to the specified keys.

GetValues(String, String[]) GetValues(String, String[]) GetValues(String, String[]) GetValues(String, String[])

Получает набор записей кэша, соответствующих указанным ключам.Gets a set of cache entries that correspond to the specified keys.

(Inherited from ObjectCache)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(String, CacheEntryRemovedReason, String) Remove(String, CacheEntryRemovedReason, String) Remove(String, CacheEntryRemovedReason, String) Remove(String, CacheEntryRemovedReason, String)

Удаляет запись из кэша, используя причину.Removes a cache entry from the cache using the reason.

Remove(String, String) Remove(String, String) Remove(String, String) Remove(String, String)

Удаляет запись из кэша.Removes a cache entry from the cache.

Set(CacheItem, CacheItemPolicy) Set(CacheItem, CacheItemPolicy) Set(CacheItem, CacheItemPolicy) Set(CacheItem, CacheItemPolicy)

Вставляет запись в кэш, используя экземпляр CacheItem, чтобы предоставить ключ и значение для записи кэша.Inserts a cache entry into the cache by using a CacheItem instance to supply the key and value for the cache entry.

Set(String, Object, CacheItemPolicy, String) Set(String, Object, CacheItemPolicy, String) Set(String, Object, CacheItemPolicy, String) Set(String, Object, CacheItemPolicy, String)

Вставляет запись в кэш, используя указанную пару "ключ-значение" и удаление.Inserts a cache entry into the cache by using a key and a value and eviction.

Set(String, Object, DateTimeOffset, String) Set(String, Object, DateTimeOffset, String) Set(String, Object, DateTimeOffset, String) Set(String, Object, DateTimeOffset, String)

Вставляет запись в кэш, используя указанную пару "ключ-значение" и задает сведения о сроке действия на основе диапазона времени.Inserts a cache entry into the cache by using a key and a value and specifies time-based expiration details.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)
Trim(Int32) Trim(Int32) Trim(Int32) Trim(Int32)

Удаляет заданное процентное количество записей кэша из объекта кэша.Removes a specified percentage of cache entries from the cache object.

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

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Предоставляет поддержку перебора элементов универсальной коллекции.Provides support for iteration over a generic collection.

IEnumerable<KeyValuePair<String,Object>>.GetEnumerator() IEnumerable<KeyValuePair<String,Object>>.GetEnumerator() IEnumerable<KeyValuePair<String,Object>>.GetEnumerator() IEnumerable<KeyValuePair<String,Object>>.GetEnumerator()

Поддерживает перебор по строго типизированной коллекции.Supports iteration over a strongly typed collection.

(Inherited from ObjectCache)

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

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре T, равном DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Преобразует IEnumerable для IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>)

Возвращает коллекцию подчиненных узлов каждого документа и элемента в исходной коллекции.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

Возвращает коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a filtered collection of the child elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>)

Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>)

Возвращает коллекцию дочерних узлов каждого документа и элемента в исходной коллекции.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>)

Удаление каждого узла в исходной коллекции из родительского узла.Removes every node in the source collection from its parent node.

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

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

Данный тип потокобезопасен.This type is thread safe.

Дополнительно