public static List <Model.ProductInfo> GetProducts(int pageIndex, int pageSize, out int totalCount) { BLL.Product bll = new BLL.Product(); totalCount = 0; if (!enableCaching) { return(bll.GetProducts(pageIndex, pageSize, out totalCount, "", "", null)); } string key = string.Format("product_get_{0}_{1}", pageIndex, pageSize); string keyCount = string.Format("product_getCount_{0}_{1}", pageIndex, pageSize); List <Model.ProductInfo> data = (List <Model.ProductInfo>)HttpRuntime.Cache[key]; object obj = HttpRuntime.Cache[keyCount]; if (obj != null) { totalCount = (int)obj; } if (data == null) { data = bll.GetProducts(pageIndex, pageSize, out totalCount, "", "", null); AggregateCacheDependency cd = DependencyFactory.GetProductDependency(); HttpRuntime.Cache.Add(key, data, cd, DateTime.Now.AddHours(productTimeout), Cache.NoSlidingExpiration, CacheItemPriority.High, null); HttpRuntime.Cache.Add(keyCount, totalCount, null, DateTime.Now.AddHours(productTimeout), Cache.NoSlidingExpiration, CacheItemPriority.High, null); } return(data); }