.Net-using-Class:MemoryCache 类

时间:2024-01-05 13:01:25
ylbtech-.Net-using-Class:MemoryCache 类

初始化 System.Runtime.Caching.MemoryCache 类的新实例。

1. 程序集 System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a返回顶部
1-1、
#region 程序集 System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Runtime.Caching.dll
#endregion using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Reflection; namespace System.Runtime.Caching
{
//
// 摘要:
// 表示实现内存中缓存的类型。
[DefaultMember("Item")]
public class MemoryCache : ObjectCache, IEnumerable, IDisposable
{
//
// 摘要:
// 初始化 System.Runtime.Caching.MemoryCache 类的新实例。
//
// 参数:
// name:
// 用于查找配置信息的名称。Note 不要求每个名称都存在配置信息。如果存在匹配的配置项,则使用该配置信息来配置 System.Runtime.Caching.MemoryCache
// 实例。 如果不存在匹配的配置项,则可以通过 System.Runtime.Caching.MemoryCache.Name 属性访问名称,因为指定的名称与
// System.Runtime.Caching.MemoryCache 实例相关联。 有关内存缓存配置的信息,请参见 System.Runtime.Caching.Configuration.MemoryCacheElement。
//
// config:
// 用于配置缓存的配置信息的名称/值对集合。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
//
// T:System.ArgumentException:
// name 是一个空字符串。
//
// T:System.ArgumentException:
// "Default"(不区分大小写) 的字符串值分配给 name。 "Default"的值不能分配给新 System.Runtime.Caching.MemoryCache
// 实例,因为值保留供使用 System.Runtime.Caching.MemoryCache.Default 属性。
//
// T:System.ArgumentException:
// 名称或中的值 config 无法分析参数。
//
// T:System.Configuration.ConfigurationException:
// 中的值 config 是无效的集合。
public MemoryCache(string name, NameValueCollection config = null); //
// 摘要:
// 通过使用 System.Runtime.Caching.MemoryCache 类的实例的默认索引器属性,获取或设置缓存中的值。
//
// 参数:
// key:
// 要获取或设置的缓存值的唯一标识符。
//
// 返回结果:
// 如果该项存在,则为指定键的缓存实例中的值;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// key 为 null。- 或 -插入的值是 null。
public override object this[string key] { get; set; } //
// 摘要:
// 获取对默认 System.Runtime.Caching.MemoryCache 实例的引用。
//
// 返回结果:
// 缓存的默认实例。
public static MemoryCache Default { get; }
//
// 摘要:
// 获取缓存可使用的物理内存的百分比。
//
// 返回结果:
// 缓存可使用的物理内存的百分比。
public long PhysicalMemoryLimit { get; }
//
// 摘要:
// 获取缓存的名称。
//
// 返回结果:
// 缓存的名称。
public override string Name { get; }
//
// 摘要:
// 获取计算机上缓存可使用的内存量(以字节为单位)。
//
// 返回结果:
// 内存量(以字节为单位)。
public long CacheMemoryLimit { get; }
//
// 摘要:
// 获取缓存提供的功能的说明。
//
// 返回结果:
// 标志的按位组合,这些标志指示缓存实现的默认功能。
public override DefaultCacheCapabilities DefaultCacheCapabilities { get; }
//
// 摘要:
// 获取在缓存更新其内存统计信息之前需等待的最大时间量。
//
// 返回结果:
// 在更新内存统计信息之前需等待的最大时间量。
public TimeSpan PollingInterval { get; } //
// 摘要:
// 将缓存项作为 System.Runtime.Caching.CacheItem 实例插入到缓存中,并添加有关如何逐出该项的详细信息。
//
// 参数:
// item:
// 要添加的对象。
//
// policy:
// 一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。
//
// 返回结果:
// 如果插入成功,则为 true;如果缓存中已存在具有与项相同的键,则为 false。
public override bool Add(CacheItem item, CacheItemPolicy policy);
//
// 摘要:
// 通过使用指定的键、值和绝对过期值,将某个缓存项添加到缓存中。
//
// 参数:
// key:
// 要添加的缓存项的唯一标识符。
//
// value:
// 该缓存项的数据。
//
// absoluteExpiration:
// 缓存项的固定的过期日期和时间。
//
// regionName:
// 缓存中的一个可向其添加缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 如果存在具有相同键的缓存项,则为现有的缓存项;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// key 为 null。
//
// T:System.ArgumentNullException:
// value 不是 null。
//
// T:System.NotSupportedException:
// regionName 不是 null。
//
// T:System.ArgumentException:
// System.Runtime.Caching.CacheItemPolicy.UpdateCallback 提供属性。Overload:System.Runtime.Caching.ObjectCache.Add
// 和 Overload:System.Runtime.Caching.ObjectCache.AddOrGetExisting 方法重载不支持 System.Runtime.Caching.CacheItemPolicy.UpdateCallback
// 属性。 因此,若要设置 System.Runtime.Caching.CacheItemPolicy.UpdateCallback 属性缓存条目,请使用
// Overload:System.Runtime.Caching.MemoryCache.Set 重载。
//
// T:System.ArgumentException:
// 绝对和可调的过期值 System.Runtime.Caching.CacheItemPolicy 对象设置的默认值以外的值为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration
// 和 System.Runtime.Caching.ObjectCache.NoSlidingExpiration 字段。System.Runtime.Caching.MemoryCache
// 类不能设置过期策略基于绝对过期时间和可调到期的组合。 只有一种过期设置可以显式设置当你使用 System.Runtime.Caching.MemoryCache
// 实例。 另一过期设置必须设置为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration
// 或 System.Runtime.Caching.ObjectCache.NoSlidingExpiration
//
// T:System.ArgumentOutOfRangeException:
// System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值小于 System.TimeSpan.Zero。-
// 或 -System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值大于一年。- 或
// -System.Runtime.Caching.CacheItemPolicy.Priority 属性不是值为 System.Runtime.Caching.CacheItemPriority
// 枚举。
public override object AddOrGetExisting(string key, object value, DateTimeOffset absoluteExpiration, string regionName = null);
//
// 摘要:
// 使用指定的 System.Runtime.Caching.CacheItem 实例以及有关如何逐出该项的详细信息将某个缓存项添加到缓存中。
//
// 参数:
// item:
// 要添加的对象。
//
// policy:
// 一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。
//
// 返回结果:
// 如果存在具有相同键的缓存项,则为现有的缓存项;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// item 为 null。
//
// T:System.ArgumentNullException:
// System.Runtime.Caching.CacheItem.Value 属性为 null。
//
// T:System.ArgumentException:
// System.Runtime.Caching.CacheItemPolicy.UpdateCallback 提供属性。Overload:System.Runtime.Caching.ObjectCache.Add
// 和 Overload:System.Runtime.Caching.ObjectCache.AddOrGetExisting 方法重载不支持 System.Runtime.Caching.CacheItemPolicy.UpdateCallback
// 属性。 因此,若要设置 System.Runtime.Caching.CacheItemPolicy.UpdateCallback 属性缓存条目,请使用
// Overload:System.Runtime.Caching.MemoryCache.Set 方法重载。
//
// T:System.ArgumentException:
// 绝对和可调的过期值 System.Runtime.Caching.CacheItemPolicy 对象设置的默认值以外的值为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration
// 和 System.Runtime.Caching.ObjectCache.NoSlidingExpiration 字段。System.Runtime.Caching.MemoryCache
// 类不能设置过期策略基于绝对过期时间和可调到期的组合。 只有一种过期设置可以显式设置当你使用 System.Runtime.Caching.MemoryCache
// 实例。 另一过期设置必须设置为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration
// 字段或 System.Runtime.Caching.ObjectCache.NoSlidingExpiration 字段。
//
// T:System.ArgumentOutOfRangeException:
// System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值小于 System.TimeSpan.Zero。-
// 或 -System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值大于一年。- 或
// -System.Runtime.Caching.CacheItemPolicy.Priority 属性不是值为 System.Runtime.Caching.CacheItemPriority
// 枚举。
public override CacheItem AddOrGetExisting(CacheItem item, CacheItemPolicy policy);
//
// 摘要:
// 通过使用指定的键、值和有关如何逐出缓存项的指定详细信息,将某个缓存项插入缓存中。
//
// 参数:
// key:
// 要添加或获取的缓存项的唯一标识符。
//
// value:
// 该缓存项的数据。
//
// policy:
// 一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。
//
// regionName:
// 缓存中的一个可向其添加缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为 null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 如果已存在匹配的缓存项,则为该缓存项;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// key 为 null。
//
// T:System.ArgumentNullException:
// value 为 null。
//
// T:System.ArgumentException:
// 绝对和可调到期值 System.Runtime.Caching.CacheItemPolicy 对象设置的默认值以外的值为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration
// 和 System.Runtime.Caching.ObjectCache.NoSlidingExpiration。System.Runtime.Caching.MemoryCache
// 类不能设置过期策略基于绝对和可调到期的组合。 只有一种过期设置可以显式设置当你使用 System.Runtime.Caching.MemoryCache
// 类。 其他设置必须设置为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration 或
// System.Runtime.Caching.ObjectCache.NoSlidingExpiration。- 或 -为指定移除回调和更新回调 System.Runtime.Caching.CacheItemPolicy。System.Runtime.Caching.MemoryCache
// 只支持使用一种类型的每个缓存项的回调。
//
// T:System.ArgumentOutOfRangeException:
// System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值小于 System.TimeSpan.Zero。-
// 或 -System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 已设置为一个值大于一年。- 或 -System.Runtime.Caching.CacheItemPolicy.Priority
// 属性不是值为 System.Runtime.Caching.CacheItemPriority 枚举。
public override object AddOrGetExisting(string key, object value, CacheItemPolicy policy, string regionName = null);
//
// 摘要:
// 确定缓存中是否存在某个缓存项。
//
// 参数:
// key:
// 要搜索的缓存项的唯一标识符。
//
// regionName:
// 缓存中的一个添加了缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 如果缓存中包含其键与 key 匹配的缓存项,则为 true;否则为 false。
//
// 异常:
// T:System.ArgumentNullException:
// key 为 null。
//
// T:System.NotSupportedException:
// regionName 不是 null。
public override bool Contains(string key, string regionName = null);
//
// 摘要:
// 创建一个 System.Runtime.Caching.CacheEntryChangeMonitor 对象,该对象可触发事件以响应对指定缓存项的更改。
//
// 参数:
// keys:
// System.Runtime.Caching.CacheEntryChangeMonitor 对象的唯一缓存项键的枚举。
//
// regionName:
// 缓存中的一个可向其添加缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 用于监视缓存中的项的更改监视器。
//
// 异常:
// T:System.NotSupportedException:
// regionName 不是 null。
//
// T:System.ArgumentNullException:
// keys 为 null。
//
// T:System.ArgumentException:
// 中的项数 keys 为零。
//
// T:System.ArgumentException:
// 中的项 keys 集合是 null。
public override CacheEntryChangeMonitor CreateCacheEntryChangeMonitor(IEnumerable<string> keys, string regionName = null);
//
// 摘要:
// 释放由 System.Runtime.Caching.MemoryCache 类的当前实例占用的所有资源。
public void Dispose();
//
// 摘要:
// 从缓存中返回一个项。
//
// 参数:
// key:
// 要获取的缓存项的唯一标识符。
//
// regionName:
// 缓存中的一个添加了缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 如果该项存在,则为对 key 标识的缓存项的引用;否则为 null。
//
// 异常:
// T:System.NotSupportedException:
// regionName 不是 null。
//
// T:System.ArgumentNullException:
// key 为 null。
public override object Get(string key, string regionName = null);
//
// 摘要:
// 从缓存中返回 System.Runtime.Caching.CacheItem 实例形式的指定项。
//
// 参数:
// key:
// 要获取的缓存项的唯一标识符。
//
// regionName:
// 缓存中的一个添加了缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 如果该项存在,则为对 key 标识的缓存项的引用;否则为 null。
//
// 异常:
// T:System.NotSupportedException:
// regionName 不是 null。
//
// T:System.ArgumentNullException:
// key 为 null。
public override CacheItem GetCacheItem(string key, string regionName = null);
//
// 摘要:
// 返回缓存中的缓存项总数。
//
// 参数:
// regionName:
// 缓存中的一个添加了缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 缓存中的项数。
//
// 异常:
// T:System.NotSupportedException:
// regionName 不是 null。
public override long GetCount(string regionName = null);
//
// 摘要:
// 返回与指定的键对应的一组缓存项。
//
// 参数:
// keys:
// 要返回的缓存项的一组唯一标识符。
//
// regionName:
// 缓存中的一个添加了缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 与指定的键对应的一组缓存项。
//
// 异常:
// T:System.NotSupportedException:
// regionName 不是 null。
//
// T:System.ArgumentNullException:
// keys 为 null。
//
// T:System.ArgumentException:
// 集合中的单个按键 null。
public override IDictionary<string, object> GetValues(IEnumerable<string> keys, string regionName = null);
//
// 摘要:
// 从缓存中移除某个缓存项。
//
// 参数:
// key:
// 要移除的缓存项的唯一标识符。
//
// regionName:
// 缓存中的一个添加了缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 返回结果:
// 如果在缓存中找到该项,则为已移除的缓存项;否则为 null。
//
// 异常:
// T:System.NotSupportedException:
// regionName 不是 null。
//
// T:System.ArgumentNullException:
// key 为 null。
public override object Remove(string key, string regionName = null);
//
// 摘要:
// 使用 System.Runtime.Caching.CacheItem 实例将某个缓存项插入缓存中,以便为该缓存项提供键和值。
//
// 参数:
// item:
// 表示要插入的缓存项的对象。
//
// policy:
// 一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。
//
// 异常:
// T:System.ArgumentNullException:
// item 为 null。- 或 -System.Runtime.Caching.CacheItem.Key 属性为 null。- 或 -System.Runtime.Caching.CacheItem.Value
// 属性为 null。
//
// T:System.ArgumentException:
// 传递了无效的缓存项的参数组合。 在策略对象的缓存项上设置以下过期详细信息,将发生这种情况 ︰如果的绝对和可调过期值 System.Runtime.Caching.CacheItemPolicy
// 对象设置的默认值以外的值为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration 和
// System.Runtime.Caching.ObjectCache.NoSlidingExpiration 字段。System.Runtime.Caching.MemoryCache
// 类不能设置过期策略基于绝对过期和可调到期。 只有一种过期设置可以显式设置当你使用 System.Runtime.Caching.MemoryCache 类。
// 其他设置必须设置为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration 或 System.Runtime.Caching.ObjectCache.NoSlidingExpiration
// 属性。如果为指定移除回调和更新回调 System.Runtime.Caching.CacheItemPolicy 对象。System.Runtime.Caching.MemoryCache
// 类只支持使用一种类型的每个缓存项的回调。
//
// T:System.ArgumentOutOfRangeException:
// System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值小于 System.TimeSpan.Zero。-
// 或 -System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值大于一年。- 或
// -System.Runtime.Caching.CacheItemPolicy.Priority 不是值的 System.Runtime.Caching.CacheItemPriority
// 枚举。
public override void Set(CacheItem item, CacheItemPolicy policy);
//
// 摘要:
// 通过使用键、值和逐出设置,将某个缓存项插入缓存中。
//
// 参数:
// key:
// 要插入的缓存项的唯一标识符。
//
// value:
// 该缓存项的数据。
//
// policy:
// 一个包含该缓存项的逐出详细信息的对象。 此对象提供比简单绝对过期更多的逐出选项。
//
// regionName:
// 缓存中的一个可向其添加缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 异常:
// T:System.ArgumentNullException:
// key 为 null。- 或 -value 为 null- 或 -传递给帮助器方法的回调引用 System.Runtime.Caching.CacheItemPolicy.UpdateCallback
// 属性是 null。
//
// T:System.ArgumentException:
// 存在无效的缓存项的参数的组合。 在策略对象的缓存项上设置以下过期详细信息,将发生这种情况 ︰如果值上的绝对地址和滑动过期 System.Runtime.Caching.CacheItemPolicy
// 对象设置的默认值以外的值为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration 和
// System.Runtime.Caching.ObjectCache.NoSlidingExpiration。 这是因为 System.Runtime.Caching.MemoryCache
// 类不支持基于绝对和可调到期的过期条目。 只有一种过期设置可以显式设置当你使用 System.Runtime.Caching.MemoryCache 类。
// 其他设置必须设置为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration 或 System.Runtime.Caching.ObjectCache.NoSlidingExpiration。如果在指定了移除回调和更新回调
// System.Runtime.Caching.CacheItemPolicy 类。System.Runtime.Caching.MemoryCache 类只支持使用一种类型的每个缓存项的回调。
//
// T:System.ArgumentOutOfRangeException:
// System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值小于 System.TimeSpan.Zero。-
// 或 -System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值大于一年。- 或
// -System.Runtime.Caching.CacheItemPolicy.Priority 属性不是值为 System.Runtime.Caching.CacheItemPriority
// 枚举。
//
// T:System.NotSupportedException:
// regionName 不是 null。
public override void Set(string key, object value, CacheItemPolicy policy, string regionName = null);
//
// 摘要:
// 使用键和值将某个缓存项插入缓存中,并指定基于时间的过期详细信息。
//
// 参数:
// key:
// 要插入的缓存项的唯一标识符。
//
// value:
// 该缓存项的数据。
//
// absoluteExpiration:
// 缓存项的固定的过期日期和时间。
//
// regionName:
// 缓存中的一个可向其添加缓存项的命名区域。 不要为该参数传递值。 默认情况下,此参数为null,因为 System.Runtime.Caching.MemoryCache
// 类未实现区域。
//
// 异常:
// T:System.NotSupportedException:
// regionName 不是 null。
//
// T:System.ArgumentNullException:
// key 为 null。- 或 -Value 为 null。
//
// T:System.ArgumentException:
// 传递了无效的缓存项的参数组合。 在策略对象的缓存项上设置以下过期详细信息,将发生这种情况 ︰如果值上的绝对地址和滑动过期 System.Runtime.Caching.CacheItemPolicy
// 对象设置的默认值以外的值为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration 和
// System.Runtime.Caching.ObjectCache.NoSlidingExpiration。 发生这种情况是因为 System.Runtime.Caching.MemoryCache
// 类不支持基于绝对和可调到期的过期条目。 只有一种过期设置可以显式设置当你使用 System.Runtime.Caching.MemoryCache 类。
// 其他设置必须设置为 System.Runtime.Caching.ObjectCache.InfiniteAbsoluteExpiration 或 System.Runtime.Caching.ObjectCache.NoSlidingExpiration。如果在指定了移除回调和更新回调
// System.Runtime.Caching.CacheItemPolicy 对象。System.Runtime.Caching.MemoryCache
// 类只支持使用一种类型的每个缓存项的回调。
//
// T:System.ArgumentOutOfRangeException:
// System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值小于 System.TimeSpan.Zero。-
// 或 -System.Runtime.Caching.CacheItemPolicy.SlidingExpiration 属性设置为一个值大于一年。- 或
// -System.Runtime.Caching.CacheItemPolicy.Priority 属性不是值为 System.Runtime.Caching.CacheItemPriority
// 枚举。
public override void Set(string key, object value, DateTimeOffset absoluteExpiration, string regionName = null);
//
// 摘要:
// 从缓存对象中移除指定百分比的缓存项。
//
// 参数:
// percent:
// 要移除的缓存项总数的百分比。
//
// 返回结果:
// 从缓存中移除的项数。
public long Trim(int percent);
//
// 摘要:
// 创建一个枚举器,它可用于循环访问缓存项的集合。
//
// 返回结果:
// 可提供对缓存中的项的访问的枚举器对象。
protected override IEnumerator<KeyValuePair<string, object>> GetEnumerator();
}
}
1-2、
2.返回顶部
3.返回顶部
4.返回顶部
5.返回顶部
6.返回顶部
7.返回顶部
8.返回顶部
9.返回顶部
10.返回顶部
11.返回顶部
.Net-using-Class:MemoryCache 类 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。