什么是.NET框架4.0之间差异MemoryCache
VS ObjectCache
? 凡使用的对象?
Answer 1:
ObjectCache是抽象类,它演示了如何建立一个坚持谁写ObjectCache的人希望你遵守规则的缓存。 无法实例ObjectCache直接,因为它是抽象的 。
的MemoryCache是实际实现 ObjectCache的。
从文档:
ObjectCache
表示一个对象的高速缓存,并提供基座的方法和属性用于访问对象缓存。
的MemoryCache
代表实现了内存高速缓存类型。
纵观声明的MemoryCache:
public class MemoryCache : ObjectCache,
IEnumerable, IDisposable
我们可以看到,从的MemoryCache继承ObjectCache -也就是说,它是对象使用内存作为存储缓存的-因此,这是ObjectCache 的实现 。
你可以写你自己的; 例如,DatabaseCache,这也从ObjectCache继承,而是将使用一个数据库作为后备存储。
对于日常使用,只要它满足你的需求,你可以使用和消耗的MemoryCache。 如果你想写你自己的,你可以从ObjectCache继承和实施所需的方法和属性。 然而,在现实中,还有就是做这个微软已经让其他几个缓存解决方案提供可能没有什么实际的好处,像许多其他厂商。
Answer 2:
从MSDN
;
所述ObjectCache类型是用于在内存中的对象高速缓存的主要类型。 内置的MemoryCache类从ObjectCache类派生。 该MemoryCache类是从ObjectCache类派生.NET Framework 4中的唯一具体对象缓存实现。
public class MemoryCache : ObjectCache,
IEnumerable, IDisposable
MemoryCache
继承自ObjectCache
。
你可以在默认情况下,参考MemoryCache
这样的实例;
public static ObjectCache cache = MemoryCache.Default;
Answer 3:
ObjectCache
是一个抽象类,你不能“使用”它本身。 作为短跑在他的评论中说,它的目的是显示缓存应如何建立和它所支持的操作。 MemoryCache
是实现ObjectCache
并从你的问题可能是你应该使用什么。 然而,由于ObjectCache
是抽象的,你可以很容易地编写自己的FileCache
继承ObjectCache
,这将是非常有效的。