如何在c#上使用缓存

时间:2016-09-20 20:08:46

标签: c# caching

我想简单地使用c#

上的缓存

我从DB获取了一个对象,我希望在缓存中保存30秒,

所以在这30秒内我不需要再从DB中获取这些信息。

例如:

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

我找不到办法做到这一点。

谢谢大家。

1 个答案:

答案 0 :(得分: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)。