في ASP.Net، ما هي أفضل طريقة لتخزين int في system.web.caching؟
سؤال
حاليا، لا بد لي من تحويل int
ل string
وتخزينها في ذاكرة التخزين المؤقت، معقدة للغاية
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
هل هنا طريقة أسرع دون تغيير النوع مرارًا وتكرارًا؟
المحلول
يمكنك تخزين أي نوع من الكائنات في ذاكرة التخزين المؤقت.توقيع الطريقة هو :
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;
}
سيؤدي هذا إلى فرض عقوبة الملاكمة/إلغاء الملاكمة مع الأنواع البدائية، ولكنها أقل بكثير من المرور عبر السلسلة في كل مرة.
نصائح أخرى
يمكنك تنفيذ طريقتك الخاصة التي تتعامل معها حتى يبدو رمز الاتصال أكثر نظافة.
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