2010-06-27 4 views
2

이미 내 ASP.NET Cache에있는 항목이있는 경우 ... 은 값이 아닌 해당 캐시 된 값의 값을 업데이트하고 싶습니다. 그 밖의 것은 아무것도 아니지만 값은 .. . Cache.Insert을 사용할 수 있습니까?Cache.Insert가 이전 AbsoluteExpiration을 무시합니까?

그렇지 않으면 어쨌든 캐시 된 항목에 대한 모든 값을 검색 할 수 있습니까? 그런 다음 Cache.Insert을 수행 할 때 다시 사용합니까?

건배 :)

답변

0

단순히 캐싱 동작에 대한 기본 값을 사용합니다 단지 키와 객체를 소요 Cache.Insert 과부하. MSDN 가입일

다음 CacheItemPriority 열거 의해 제공되는 디폴트 값을 사용하여 그 위치를 참조 캐시 키 캐쉬 객체로

삽입 항목.

캐시 된 항목의 비헤이비어 속성을 얻는 방법이 없다고 생각하면 값을 저장하기 위해 고유 한 도우미 클래스를 만드는 것이 가장 좋습니다.

+0

그래서 과도하게 작성 되었습니까? 나는 많이 생각하고 있었다. –

+0

예,'Cache.Insert'는 간단히'Cache' 키를 덮어 씁니다. 래퍼가 캐싱 속성에서 처리 할 수있는 방법을 알지 못합니다. –

1
당신은 새로운 값을 추가하거나 다음과 같이 기존의 것을 업데이트를 처리 할 수있는 기능을 만들 수 있습니다

:. 여기

private static Cache cachingControl; 

public void UpdateToCache(object key, object updateValue) 
{ 
    try 
    { 
     if (key != null) 
     { 
      cachingControl.Remove(key); 
      AddToCache(key, updateValue); 
     } 
    } 
    catch (Exception ex) 
    { 
     //**ToDo[Logging]** Code for logging 
    } 
} 

public void AddToCache(object key, object saveValue) 
{ 
    try 
    { 
     if (key != null) 
     { 
      cachingControl.Insert(key, saveValue,null,System.Web.Caching.Cache.NoAbsoluteExpiration,TimeSpan.FromMinutes(30)); 
     } 
    } 
    catch (Exception ex) 
    { 
     //**ToDo[Logging]** Code for logging 
    } 
} 

당신이 키를 기존에 새 값을 업데이트하는 새로운 가치와 UpdateToCache 기능을 삽입 할 AddToCache 기능을 사용할 수 있습니다 (기본적으로 기존 키를 제거하고 업데이트 된 값으로 다시 추가하는 과정이 포함됩니다.)

기존 값을 업데이트하는 직접적인 방법은 없습니다.

관련 문제