簡體   English   中英

.net 4.0中MemoryCache與ObjectCache有什么區別?

[英]What is difference between MemoryCache vs ObjectCache in .net 4.0?

.NET framework 4.0 MemoryCacheObjectCache什么ObjectCache 在哪里使用哪個對象?

ObjectCache是​​一個抽象類,它演示了如何構建一個符合編寫ObjectCache的人要遵守的規則的Cache。 您無法直接實例化ObjectCache,因為它是抽象的

MemoryCache是​​ObjectCache 的實際實現

從文檔:

ObjectCache

表示對象緩存,並提供用於訪問對象緩存的基本方法和屬性。

的MemoryCache

表示實現內存高速緩存的類型。

查看MemoryCache的聲明:

public class MemoryCache : ObjectCache, 
    IEnumerable, IDisposable

我們可以看到MemoryCache繼承自ObjectCache - 也就是說,它是使用Memory作為其存儲的對象的緩存 - 因此是ObjectCache的一個實現

你可以寫自己的; 例如,DatabaseCache,它也可以從ObjectCache繼承,但它會使用數據庫作為后備存儲。

對於日常使用,只要滿足您的需求,您就可以使用和使用MemoryCache。 如果您想編寫自己的,可以從ObjectCache繼承並實現所需的方法和屬性。 然而,實際上,這樣做可能沒什么實際好處,因為微軟已經提供了其他幾種緩存解決方案,許多其他供應商也是如此。

來自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在評論中所說,它旨在展示如何構建緩存以及它支持的操作。 MemoryCacheObjectCache一個實現,從你的問題可能是你應該使用的。 但是,因為ObjectCache是抽象的,所以您可以輕松編寫自己繼承自ObjectCacheFileCache ,它將完全有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM