程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用匿名函數來更方便的使用緩存(1)

用匿名函數來更方便的使用緩存(1)

編輯:關於C語言

一個數據緩存,一般由數據來源,緩存方案,緩存讀取來完成,現在有了匿名函數,可以把獲取數據 來源變為匿名函數。這樣就可以直接聲明一個緩存:

protected static CacheManager<Company> companyCache = new  CacheManager<Company>(new SmsDatabaseCache<Company>(), (key) =>
              {
                  return SmsDatabase.Instance.Context.Company.Where(c  => c.ShortNumber == (string)key).SingleOrDefault();
              });

SmsDatabaseCache是一個緩存方案,還可以使用SimpleCache,TimeoutCache等實現了ICache接口的類 ,因為我的ICacheManager從ICache繼承,所以還可以實現級連緩存喲,例如:

SmsDatebaseCache是一個依SmsDatabase.Instance.Context的緩存方案,在LinqContextDispose時, 會進行清空數據操作。

SmsDatabaseCache 

    public class SmsDatabaseCache<TData> : ICache<TData>
     {
         private Dictionary<object, TData> cache = new  Dictionary<object, TData>();

         public SmsDatabaseCache()
         {
             SmsDatabase.Instance.PreDisposing += (s, e) =>
                 {
                     cache.Clear();
                 };
         }

         public TData Get(object key)
         {
             return cache[key];
         }

         public void Set(object key, TData data)
         {
             cache[key] = data;
         }

     }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved