في ASP.Net، ما هي أفضل طريقة لتخزين int في system.web.caching؟

StackOverflow https://stackoverflow.com/questions/9028010

  •  14-11-2019
  •  | 
  •  

سؤال

حاليا، لا بد لي من تحويل 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" );
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top