html5中文学习网

您的位置: 首页?>?网站及特效实例?>?jquery特效 ? 正文

C#实现简单的通用缓存实现_编程语言综合

[ ] 已经帮助:人解决问题

? 在程序中经常需要用到一些内存缓存,每个获取到的数据都需要重新实现一遍缓存处理,代码冗余,基于此,现提供一种通用的内存缓存实现,直接上代码:uxXHTML5中文学习网 - HTML5先行者学习网

  ///

uxXHTML5中文学习网 - HTML5先行者学习网

  /// 获取缓存对象uxXHTML5中文学习网 - HTML5先行者学习网

  /// uxXHTML5中文学习网 - HTML5先行者学习网

  /// 缓存实体对象uxXHTML5中文学习网 - HTML5先行者学习网

  /// 实体数据获取方法uxXHTML5中文学习网 - HTML5先行者学习网

  /// 缓存关键字uxXHTML5中文学习网 - HTML5先行者学习网

  /// 缓存时间(分钟)uxXHTML5中文学习网 - HTML5先行者学习网

  /// 实体数据获取参 uxXHTML5中文学习网 - HTML5先行者学习网

  /// 参数T uxXHTML5中文学习网 - HTML5先行者学习网

?uxXHTML5中文学习网 - HTML5先行者学习网

  public static T GetCacheData( Delegate dele, string cacheKey, int cacheDuration, params ob ject [] objs)uxXHTML5中文学习网 - HTML5先行者学习网

  {uxXHTML5中文学习网 - HTML5先行者学习网

  if ( HttpRuntime.Cache.Get(cacheKey) == null )uxXHTML5中文学习网 - HTML5先行者学习网

  {uxXHTML5中文学习网 - HTML5先行者学习网

  string assemblyName = dele.Target.GetType().Assembly.FullName;uxXHTML5中文学习网 - HTML5先行者学习网

  string typeName = dele.Target.GetType().FullName;uxXHTML5中文学习网 - HTML5先行者学习网

  ob ject instance = Assembly.Load(assemblyName).CreateInstance(typeName);uxXHTML5中文学习网 - HTML5先行者学习网

  MethodInfo methodInfo = dele.Method;uxXHTML5中文学习网 - HTML5先行者学习网

  T result = (T)methodInfo.Invoke(instance, objs);uxXHTML5中文学习网 - HTML5先行者学习网

  HttpRuntime.Cache.Add(cacheKey, result, null , Cache.NoAbsoluteExpiration, TimeSpan .FromMinutes(cacheDuration), CacheItemPriority.NotRemovable, null );uxXHTML5中文学习网 - HTML5先行者学习网

  }uxXHTML5中文学习网 - HTML5先行者学习网

  return (T) HttpRuntime.Cache[cacheKey];uxXHTML5中文学习网 - HTML5先行者学习网

  }uxXHTML5中文学习网 - HTML5先行者学习网

  使用HttpRuntime.Cache缓存数据,缓存数据不存在,用委托和反射调用业务方法获取业务数据并缓存。使用如下:uxXHTML5中文学习网 - HTML5先行者学习网

  string result = CacheHelper.GetCacheData(new Func(cacheTest.GetMyData), "one", 5, "test");uxXHTML5中文学习网 - HTML5先行者学习网

  附上另一个可能会重载的版本:uxXHTML5中文学习网 - HTML5先行者学习网

  public static TResult GetCacheData(Func func, string cacheKey, int cacheTime, T1 para1, T2 para2)uxXHTML5中文学习网 - HTML5先行者学习网

  {uxXHTML5中文学习网 - HTML5先行者学习网

  if (HttpRuntime.Cache.Get(cacheKey) == null)uxXHTML5中文学习网 - HTML5先行者学习网

  {uxXHTML5中文学习网 - HTML5先行者学习网

  Console.WriteLine("未命中缓存");uxXHTML5中文学习网 - HTML5先行者学习网

  TResult result = func(para1, para2);uxXHTML5中文学习网 - HTML5先行者学习网

  HttpRuntime.Cache.Add(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(cacheTime), CacheItemPriority.NotRemovable, null);uxXHTML5中文学习网 - HTML5先行者学习网

  return result;uxXHTML5中文学习网 - HTML5先行者学习网

  }uxXHTML5中文学习网 - HTML5先行者学习网

  Console.WriteLine("命中缓存");uxXHTML5中文学习网 - HTML5先行者学习网

  return (TResult)HttpRuntime.Cache.Get(cacheKey);uxXHTML5中文学习网 - HTML5先行者学习网

  }uxXHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助