MemoryCache MemoryCache MemoryCache MemoryCache Class

Definición

Representa el tipo que implementa una caché en memoria.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
Herencia
MemoryCacheMemoryCacheMemoryCacheMemoryCache
Implementaciones

Ejemplos

En el ejemplo siguiente se declara una referencia a la instancia de la memoria caché predeterminada.The following example declares a reference to the default memory cache instance. La entrada de caché utiliza CacheItemPolicy un objeto para proporcionar los detalles de expulsión y expiración de la entrada de caché.The cache entry uses a CacheItemPolicy object to provide eviction and expiration details for the cache entry. También usa un ChangeMonitor objeto para supervisar el estado de los datos de origen (que es un archivo) en el sistema de archivos.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;  
}  

Comentarios

La clase MemoryCache es una implementación concreta de la clase abstracta ObjectCache .The MemoryCache class is a concrete implementation of the abstract ObjectCache class.

Nota

La MemoryCache clase es similar a la clase Cache ASP.net.The MemoryCache class is similar to the ASP.NET Cache class. La MemoryCache clase tiene muchas propiedades y métodos para tener acceso a la memoria caché que le resultará familiar si ha usado la clase Cache ASP.net.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. Las principales diferencias entre las Cache clases MemoryCache y son que la MemoryCache clase ha cambiado para que .NET Framework.NET Framework las aplicaciones que no son ASP.net puedan usarlas.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. Por ejemplo, la MemoryCache clase no tiene dependencias en el System.Web ensamblado.For example, the MemoryCache class has no dependencies on the System.Web assembly. Otra diferencia es que se pueden crear varias instancias de la MemoryCache clase para usarlas en la misma aplicación y en la AppDomain misma instancia.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.

La MemoryCache clase no permite null como valor en la memoria caché.The MemoryCache class does not allow null as a value in the cache. Cualquier intento de agregar o cambiar una entrada de caché con un valor null de producirá un error.Any attempt to add or change a cache entry with a value of null will fail.

El MemoryCache tipo no implementa regiones de caché.The MemoryCache type does not implement cache regions. Por consiguiente, cuando se MemoryCache llama a métodos que implementan métodos base que contienen un parámetro para regiones, no se pasa un valor para el parámetro.Therefore, when you call MemoryCache methods that implement base methods that contain a parameter for regions, do not pass a value for the parameter. Los métodos que usan el parámetro region proporcionan un valor predeterminado null .The methods that use the region parameter all supply a default null value. Por ejemplo, la MemoryCache.AddOrGetExisting sobrecarga del método tiene regionName un parámetro cuyo valor predeterminado nulles.For example, the MemoryCache.AddOrGetExisting method overload has a regionName parameter whose default value is null.

Constructores

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

Inicializa una nueva instancia de la clase 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)

Inicializa una nueva instancia de la clase MemoryCache.Initializes a new instance of the MemoryCache class.

Propiedades

CacheMemoryLimit CacheMemoryLimit CacheMemoryLimit CacheMemoryLimit

Obtiene la cantidad de memoria del equipo, en bytes, que la memoria caché puede utilizar.Gets the amount of memory on the computer, in bytes, that can be used by the cache.

Default Default Default Default

Obtiene una referencia a la instancia predeterminada de MemoryCache.Gets a reference to the default MemoryCache instance.

DefaultCacheCapabilities DefaultCacheCapabilities DefaultCacheCapabilities DefaultCacheCapabilities

Obtiene una descripción de las características proporcionadas por la memoria caché.Gets a description of the features that the cache provides.

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

Obtiene o establece un valor en la memoria caché con la propiedad de indizador predeterminada para una instancia de la clase 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

Obtiene el nombre de la memoria caché.Gets the name of the cache.

PhysicalMemoryLimit PhysicalMemoryLimit PhysicalMemoryLimit PhysicalMemoryLimit

Obtiene el porcentaje de memoria física que la memoria caché puede utilizar.Gets the percentage of physical memory that the cache can use.

PollingInterval PollingInterval PollingInterval PollingInterval

Obtiene el tiempo máximo después del cual la memoria caché actualiza sus estadísticas de memoria.Gets the maximum time after which the cache updates its memory statistics.

Métodos

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

Inserta una entrada de caché en la memoria caché como una instancia CacheItem y agrega los detalles sobre cómo se debe expulsar la entrada.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)

Cuando se invalida en una clase derivada, inserta una entrada de caché en la memoria caché, y especifica información sobre cómo se expulsará la entrada.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)

Cuando se invalida en una clase derivada, inserta una entrada de caché en la memoria caché sin sobrescribir ninguna entrada existente.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)

Agrega una entrada de caché en la memoria caché utilizando la instancia especificada de CacheItem y los detalles sobre cómo expulsar la entrada.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)

Inserta una entrada en la memoria caché utilizando la clave especificada y un valor, así como los detalles especificados sobre cómo debe expulsarse la entrada.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)

Agrega una entrada de caché en la memoria caché utilizando la clave especificada y un valor, y un valor de expiración absoluta.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)

Determina si una entrada existe en la memoria caché.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)

Crea un objeto CacheEntryChangeMonitor que puede activar eventos en respuesta a los cambios realizados en las entradas especificadas de la memoria caché.Creates a CacheEntryChangeMonitor object that can trigger events in response to changes to specified cache entries.

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

Libera todos los recursos utilizados por la instancia actual de la clase MemoryCache.Releases all resources that are used by the current instance of the MemoryCache class.

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

Determina si el objeto especificado es igual al objeto actual.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)

Devuelve una entrada de la memoria caché.Returns an entry from the cache.

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

Devuelve la entrada especificada de la memoria caché como una instancia de CacheItem.Returns the specified entry from the cache as a CacheItem instance.

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

Devuelve el número total de entradas de caché en la memoria caché.Returns the total number of cache entries in the cache.

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

Crea un enumerador que se puede usar para iterar en una colección de entradas de la memoria caché.Creates an enumerator that can be used to iterate through a collection of cache entries.

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

Sirve como la función hash predeterminada.Serves as the default hash function.

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

Obtiene el tamaño de la región con nombre.Gets the size of the named region.

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

Obtiene el Type de la instancia actual.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)

Devuelve un conjunto de entradas de caché que se corresponden con las claves especificadas.Returns a set of cache entries that correspond to the specified keys.

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

Obtiene un conjunto de entradas de la memoria caché que corresponden a las claves especificadas.Gets a set of cache entries that correspond to the specified keys.

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

Crea una copia superficial del objeto Object actual.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)

Quita una entrada de caché de la memoria caché con el motivo.Removes a cache entry from the cache using the reason.

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

Quita una entrada de la memoria caché.Removes a cache entry from the cache.

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

Inserta una entrada en la memoria caché utilizando una instancia de CacheItem para proporcionar la clave y el valor de la entrada.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)

Inserta una entrada en la memoria caché utilizando una clave, un valor y los detalles referentes a la expulsión.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)

Inserta una entrada en la memoria caché utilizando una clave, un valor y los detalles especificados sobre la expiración basada en el tiempo.Inserts a cache entry into the cache by using a key and a value and specifies time-based expiration details.

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

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

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

Quita el porcentaje especificado de entradas de caché del objeto de caché.Removes a specified percentage of cache entries from the cache object.

Implementaciones de interfaz explícitas

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

Proporciona compatibilidad para la iteración en una colección genérica.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()

Admite la iteración sobre una colección fuertemente tipada.Supports iteration over a strongly typed collection.

(Inherited from ObjectCache)

Métodos de extensión

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

Devuelve un objeto DataTable que contiene copias de los objetos DataRow, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es 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)

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es 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)

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es 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)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

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

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

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

Habilita la paralelización de una consulta.Enables parallelization of a query.

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

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

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

Devuelve una colección de elementos que contiene los antecesores de todos los nodos de la colección de origen.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)

Devuelve una colección de elementos filtrada que contiene los antecesores de todos los nodos de la colección de origen.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.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>)

Devuelve una colección de los nodos descendientes de todos los documentos y elementos de la colección de origen.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>)

Devuelve una colección de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen.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)

Devuelve una colección filtrada de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.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>)

Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.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)

Devuelve una colección filtrada de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a filtered collection of the child elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.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>)

Devuelve una colección de nodos que contiene todos los nodos de la colección de origen, clasificados por documento.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>)

Devuelve una colección de los nodos secundarios de todos los documentos y elementos de la colección de origen.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>)

Quita todos los nodos de la colección de origen de su nodo primario.Removes every node in the source collection from its parent node.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para la ejecución de subprocesos.This type is thread safe.

Consulte también: