Вы можете хранить любые объекты в кеше. Подпись метода:
Cache.Insert(string, object)
так что вам не нужно конвертировать в строку перед вставкой. Однако вам нужно будет разыграть при получении из кеша:
int test = 123;
HttpContext.Current.Cache.Insert("key", test);
object cacheVal = HttpContext.Current.Cache.Get("key");
if(cacheVal != null)
{
test = (int)cacheVal;
}
Это повлечет за собой штраф за бокс / распаковку с примитивными типами, но значительно меньше, чем каждый раз через строку.