In ASP.Net, what is the best way to store int in system.web.caching?
Question
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?
Solution
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.
OTHER TIPS
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" );
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow