2009-10-05 35 views

回答

2

当您使用的CacheManager的Add方法将其添加到缓存中你可以指定你的项目到期:

public void Add (
    string key, 
    Object value, 
    CacheItemPriority scavengingPriority, 
    ICacheItemRefreshAction refreshAction, 
    params ICacheItemExpiration[] expirations 
) 


在这固然牵强例如,如果产品价格低于100,那么产品将被缓存24小时,否则它将在缓存的上次访问时间后1分钟到期。

Product[] products = GetProducts(); 

CacheManager cache = CacheFactory.GetCacheManager(); 

AbsoluteTime twentyFourHoursLater = new AbsoluteTime(DateTime.Now.AddHours(24)); 
SlidingTime oneMinuteSlidingTime = new SlidingTime(TimeSpan.FromMinutes(1)); 

foreach (Product product in products) 
{ 
    if (product.ProductPrice < 100) 
    { 
     cache.Add(product.ProductID, product, CacheItemPriority.Normal, null, 
      twentyFourHoursLater); 
    } 
    else 
    { 
     cache.Add(product.ProductID, product, CacheItemPriority.Normal, null, 
      oneMinuteSlidingTime); 
    } 
} 
+0

谢谢。确实有点牵强,但说明性:) – 2009-10-06 14:57:13