.NET框架4.0中MemoryCache
和ObjectCache
有何区别?在哪些场景下应该使用它们?
ObjectCache是一个抽象类,展示了如何构建符合ObjectCache作者规定的缓存。你不能直接实例化ObjectCache,因为它是抽象的。
MemoryCache是ObjectCache的一个实际实现。
从文档中可以看到:
表示一个对象缓存,并提供访问对象缓存的基本方法和属性。
表示实现内存缓存的类型。
看一下MemoryCache的声明:
public class MemoryCache : ObjectCache,
IEnumerable, IDisposable
出自MSDN
;
ObjectCache 类型是内存中对象缓存的基本类型。内置的 MemoryCache 类派生自 ObjectCache 类。 MemoryCache 类是 .NET Framework 4 中唯一从 ObjectCache 类派生的具体对象缓存实现。
public class MemoryCache : ObjectCache,
IEnumerable, IDisposable
MemoryCache
继承自 ObjectCache
。
您可以通过以下方式获取默认的 MemoryCache
实例引用:
public static ObjectCache cache = MemoryCache.Default;
ObjectCache
是一个抽象类,你不能直接使用它。正如Dash在他的评论中所说,它的设计是为了展示缓存应该如何构建以及支持哪些操作。 MemoryCache
是 ObjectCache
的实现,根据您的问题,很可能是您应该使用的。然而,由于 ObjectCache
是抽象的,因此您同样可以编写自己的 FileCache
并继承 ObjectCache
,这也是完全有效的。