缓存-MemoryCache Class

 

这是使用MemoryCache缓存的一个例子。

private void btnGet_Click(object sender, EventArgs e)  
{  
    ObjectCache cache = MemoryCache.Default;  
    string fileContents = cache["filecontents"] as string;  

    if (fileContents == null)  
    {  
        CacheItemPolicy policy = new CacheItemPolicy();  

        List<string> filePaths = new List<string>();  
        filePaths.Add("c:\\cache\\example.txt");  

        policy.ChangeMonitors.Add(new   
        HostFileChangeMonitor(filePaths));  

        // Fetch the file contents.  
        fileContents =   
            File.ReadAllText("c:\\cache\\example.txt");  

        cache.Set("filecontents", fileContents, policy);  
    }  

    Label1.Text = fileContents;  
}

 

最早在.NET Framework中实现了 MemoryCache类,继承自ObjectCache。

最早只有asp.net中有缓存类Namespace:System.Web.Caching,但是该类不适合在 ASP.NET 应用程序外部使用。

 

以上资料来自:Docs .NET  .NET API 浏览器  System.Web.Caching Cache

地址:https://docs.microsoft.com/zh-cn/dotnet/api/system.web.caching.cache?view=netframework-4.7.2

 ---------------------------
20190807
Cache类不适合在 ASP.NET 应用程序外部使用。 它是设计和测试在提供的 Web 应用程序中缓存的 ASP.NET 中使用。 
对于其他类型的应用程序,如控制台应用程序或 Windows 窗体应用程序,请使用ObjectCache类。
 
内置MemoryCache类派生自ObjectCache类。 MemoryCache类是中的唯一具体对象缓存实现.NET Framework 4派生ObjectCache类。
 
 
MemoryCache 不是单一实例,但您应创建仅几个或者可能仅一个MemoryCache实例和缓存项的代码应使用这些实例。
 
示例代码
private void btnGet_Click(object sender, EventArgs e)  
{  
    ObjectCache cache = MemoryCache.Default;  
    string fileContents = cache["filecontents"] as string;  

    if (fileContents == null)  
    {  
        CacheItemPolicy policy = new CacheItemPolicy();  

        List<string> filePaths = new List<string>();  
        filePaths.Add("c:\\cache\\example.txt");  

        policy.ChangeMonitors.Add(new   
        HostFileChangeMonitor(filePaths));  

        // Fetch the file contents.  
        fileContents =   
            File.ReadAllText("c:\\cache\\example.txt");  

        cache.Set("filecontents", fileContents, policy);  
    }  

    Label1.Text = fileContents;  
}

 

 
 
 
 
 

 

posted on 2018-11-22 15:18  荆棘人  阅读(287)  评论(0编辑  收藏  举报

导航