【Birdshover】.Net 記憶體快取專案 SharpCached原始碼

iDotNetSpace發表於2008-07-30

/*  SharpCached 是一個記憶體快取工具
 *  by yurow @ http://birdshover.cnblogs.com
 *  2008-7-29 created

 */

 

 SharpCached V0.6

 

 

下載地址:http://files.cnblogs.com/birdshover/SharpCached.zip

 

有興趣的朋友,可以和我一起研究,呵呵,不完善的地方期望大家能不吝指正。 本來想在CodePlex開個開源專案的,但是人太笨,用的SvnBridge一直傳不上去,鬱悶得不弄了,呵呵。

 

 SharpCached是完全用C#開發的,基於.Net Framework 2.0執行的記憶體快取服務,Visual Studio 2008專案。

 

一、實現功能

實現IIS程式外快取功能,通過Remoting呼叫。

實現了未命中或者近段時間內未命中結果過期。

實現了限制使用最大記憶體(程式檢測出的和Windows工作管理員不一致,工作管理員中看到使用記憶體要多一些。)

 

二、使用服務

編譯後檔案清單

SharpCached.exe

ISharpCarrier.dll

SharpCached.exe.config


SharpCached.exe.config配置檔案說明




   

         <!-- 服務埠 --&gt

       

         <!-- 最大使用記憶體,單位M--&gt

       

         <!-- 存取Key初始數值 --&gt

       

         <!-- 未命中過期--&gt

       

          <!-- 服務名--&gt

       
   

 

註冊:sc create "SharpCached" type= interact type= own start= auto binPath= "%cd%"SharpCached.exe"

啟動:net start "SharpCached"


三、呼叫方法

 

客戶端配置檔案:

如果是Windows應用程式,把

   

         <!-- 伺服器地址 --&gt

       

         <!-- 連線超時時間 --&gt

       

   

程式碼加入app.setting中


如果是Web程式,把以上程式碼加入Web.Config中。


專案引用SharpClient專案和ISharpCarrier專案


示例程式碼:

DataTable GetTable()

{

SharpCachedAPI api = new SharpCachedAPI();

string key = "key_123";

if (api.IsError)
{
       return new DataTable();
 }
else
{
      if (api.Exist(key))

{
       return SharpCachedAPI.Deserialize(api.Get(key));
}

      else

{
       DataTable dt = new DataTable();
       string value = SharpCachedAPI.Serialize(dt);
       api.Set(key, value);
       return dt;
}

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-413577/,如需轉載,請註明出處,否則將追究法律責任。

相關文章