#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#endregionusing 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 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 GetValues(IEnumerable 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 > GetEnumerator(); }}