In ASP.Net, what is the best way to store int in system.web.caching?
문제
Currently, I have to convert int
to string
and store in cache, very complex
int test = 123;
System.Web.HttpContext.Current.Cache.Insert("key", test.ToString()); // to save the cache
test = Int32.Parse(System.Web.HttpContext.Current.Cache.Get("key").ToString()); // to get the cache
Is here a faster way without change type again and again?
해결책
You can store any kind of object in the cache. The method signature is:
Cache.Insert(string, object)
so, you don't need to convert to string before inserting. You will, however, need to cast when you retrieve from the cache:
int test = 123;
HttpContext.Current.Cache.Insert("key", test);
object cacheVal = HttpContext.Current.Cache.Get("key");
if(cacheVal != null)
{
test = (int)cacheVal;
}
This will incur a boxing/unboxing penalty with primitive types, but considerably less so than going via string each time.
다른 팁
You could implement your own method that handles it so the calling code looks cleaner.
public void InsertIntIntoCache( string key, int value )
{
HttpContext.Current.Cache.Insert( key, value );
}
public int GetIntCacheValue( string key )
{
return (int)HttpContext.Current.Cache[key];
}
int test = 123;
InsertIntIntoCache( "key", test );
test = GetIntCacheValue( "key" );
제휴하지 않습니다 StackOverflow