Search code examples
c#asp.netcachingint32

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?


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.