소프트웨어/C# & ASP.NET

ASP.NET 캐시의 올바른 사용

falconer 2009. 11. 12. 17:56

원문 : Correct using of ASP.NET Cache

ASP.NET 애플리케이션 코드를 보다 보면 아래와 같은 코드를 보는 경우가 종종 있습니다.

if (Cache["SomeData"] != null)

{

string name = ((SomeClass)Cache["SomeData"]).Name;

//.....

}

이 코드는 안전하지가 않습니다. 게다가 두 번째 문장은 NullReferenceException을 일으킬 수도 있습니다. 두 번의 호출이 일어나는 사이에 캐시된 객체가 유지된다는 보장은 없습니다. 첫번째 호출 이후에 객체는 가비지 컬렉터나 캐쉬된 객체를 갱신하는 다른 스레드에 의해 삭제될 지도 모릅니다.

이 문제를 해결하기 위해서는 as 연산자를 사용하십시오.

SomeClass someClass = Cache["SomeData"] as SomeClass;

if (someClass != null)

{

string name = someClass.Name;

//.....

}

via Dmytro Shteflyuk


출처 : http://kimgwajang.tistory.com/29