수색…


캐시에 항목 추가 (설정)

Set 함수는 CacheItem 인스턴스를 사용하여 캐시 항목에 대한 키와 값을 제공하여 캐시 항목을 캐시에 삽입합니다.

이 함수는 ObjectCache.Set(CacheItem, CacheItemPolicy) 재정의 ObjectCache.Set(CacheItem, CacheItemPolicy)

private static bool SetToCache()
{
    string key = "Cache_Key";
    string value = "Cache_Value";

    //Get a reference to the default MemoryCache instance.
    var cacheContainer = MemoryCache.Default; 

    var policy = new CacheItemPolicy()
    {
        AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(DEFAULT_CACHE_EXPIRATION_MINUTES)
     };
     var itemToCache = new CacheItem(key, value); //Value is of type object.
     cacheContainer.Set(itemToCache, policy);                
}

System.Runtime.Caching.MemoryCache (ObjectCache)

이 함수는 기존 항목 양식 캐시를 가져오고 캐시에 항목이 없으면 valueFetchFactory 함수를 기반으로 항목을 가져옵니다.

    public static TValue GetExistingOrAdd<TValue>(string key, double minutesForExpiration, Func<TValue> valueFetchFactory)
    {            
        try
        {
            //The Lazy class provides Lazy initialization which will evaluate 
            //the valueFetchFactory only if item is not in the cache.
            var newValue = new Lazy<TValue>(valueFetchFactory);

            //Setup the cache policy if item will be saved back to cache.
            CacheItemPolicy policy = new CacheItemPolicy()
            {
                AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(minutesForExpiration)
            };

            //returns existing item form cache or add the new value if it does not exist.
            var cachedItem = _cacheContainer.AddOrGetExisting(key, newValue, policy) as Lazy<TValue>;

            return (cachedItem ?? newValue).Value;
        }
        catch (Exception excep)
        {
            return default(TValue);
        }
    }


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow