Merhabalar, daha önce de bu konuya benzer şeyler yazmıştım. Bu yazıda cache işlemlerini kolayca yapabilmek için kullandığım aşağıdaki sınıfı paylaşıyorum. CacheHelper.cs sınıfı aşağıdaki gibidir.
namespace OMR.Core.Helpers
{
using System;
using System.Web;
public class CacheHelper
{
private static HttpContext GetHttpContext()
{
HttpContext httpContext = HttpContext.Current;
if (httpContext == null)
throw new InvalidOperationException();
return httpContext;
}
/// <summary>
/// Önbelleğe nesne eklemek için kullanılır
/// </summary>
/// <typeparam name="T">Nesne tipi</typeparam>
/// <param name="t">Nesne tipi</param>
/// <param name="key">Önbellek anahtarı</param>
/// <param name="minute">Önbellekte kalma süresi</param>
public static void Add<T>(T t, string key, int minute) where T : class
{
GetHttpContext().Cache.Insert(key, t, null, DateTime.Now.AddMinutes(minute), System.Web.Caching.Cache.NoSlidingExpiration);
}
/// <summary>
/// Önbellek anahtarına göre nesneyi önbellekten siler
/// </summary>
/// <param name="key">Önbellek anahtarı</param>
public static void Clear(string key)
{
GetHttpContext().Cache.Remove(key);
}
/// <summary>
/// Önbellekte önbellek anahtarı var mı?
/// </summary>
/// <param name="key">Önbellek anahtarı</param>
/// <returns></returns>
public static bool Exists(string key)
{
return GetHttpContext().Cache[key] != null;
}
/// <summary>
/// Önbellek anahtarına göre ilgili nesneyi dönderir
/// </summary>
/// <typeparam name="T">Nesne tipi</typeparam>
/// <param name="key">Önbellek anahtarı</param>
/// <param name="value">Önbellek değeri</param>
/// <returns></returns>
public static bool Get<T>(string key, out T value) where T : class
{
try
{
// Önbellek anahtarı yok mu?
if (!Exists(key))
{
// Varsayılan değeri ata
value = default(T);
return false;
}
// Önbellekteki değeri ata
value = (T)GetHttpContext().Cache[key];
return true;
}
catch
{
// Hata olması durumunda varsayılan değeri ata
value = default(T);
return false;
}
}
}
}
Faydalı olması dileğiyle, mutlu kodlar.
61ec3cb7-83d1-4a41-aeb1-da8d2447f432|0|.0