2016-09-20 13 views
-7

我想與緩存C#的簡單的使用如何使用緩存在C#

我從DB對象,我想將它保存爲在高速緩存30秒,

所以在這個30秒我不需要再從DB獲取這些信息。

例如:

if(cache("name")== empty) 
     MyClass temp=GetFromDb(); 
     InsertToCache("name") 
else 
    MyClass temp=selectFromCache("name") 

我沒有找到一個方法來做到這一點。

謝謝大家。

+2

您可以查看['MemoryCache'](https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v = vs.110).aspx) – Nico

+2

請指定您的文章!什麼類型的C#應用​​程序? – rbr94

+0

@heinzbeinz 我不喜歡問一個代碼,但我serached那裏... 不知道爲什麼,但不成功 你能爲我寫嗎? – TOOMI19876

回答

0

這裏是類似於你要完成的一個例子:

public Person RetrievePerson(string name) 
{ 
    var memoryCache = MemoryCache.Default; // Needs a reference to System.Runtime.Caching 
    var person = memoryCache.Get(name) as Person; 

    if (person == null) 
    { 
     person = CreatePerson(name); 

     memoryCache.Add(name, person, new CacheItemPolicy 
     { 
      SlidingExpiration = new TimeSpan(0, 0, 1) 
     }); 
    } 

    return person; 
} 

請注意,你需要System.Runtime.Caching參考(見https://msdn.microsoft.com/en-us/library/wkze6zky.aspx的幫助)。

有關MemoryCache,CacheItemPolicy等的更多信息,請查看MSDN(例如https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx)。