Was ist in ASP.Net der beste Weg, um int in system.web.caching zu speichern?
Frage
Momentan muss ich umrechnen int
Zu string
und im Cache speichern, sehr komplex
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
Gibt es hier einen schnelleren Weg, ohne den Typ immer wieder zu ändern?
Lösung
Sie können jede Art von Objekt im Cache speichern.Die Methodensignatur lautet:
Cache.Insert(string, object)
Sie müssen also vor dem Einfügen nicht in einen String konvertieren.Beim Abrufen aus dem Cache müssen Sie jedoch Folgendes umwandeln:
int test = 123;
HttpContext.Current.Cache.Insert("key", test);
object cacheVal = HttpContext.Current.Cache.Get("key");
if(cacheVal != null)
{
test = (int)cacheVal;
}
Bei primitiven Typen führt dies zu einer Strafe beim Boxen/Unboxen, die jedoch deutlich geringer ausfällt, als wenn jedes Mal über einen String gearbeitet wird.
Andere Tipps
Sie könnten Ihre eigene Methode implementieren, die das verarbeitet, damit der aufrufende Code sauberer aussieht.
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" );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow