C# 在企业库中设置实体的最大寿命';s缓存块?

C# 在企业库中设置实体的最大寿命';s缓存块?,c#,.net,caching,enterprise-library,C#,.net,Caching,Enterprise Library,在我的应用程序中,我想将一些项添加到缓存中,但这些项最多应该有一天的时间 是否有OOTB方法来设置某些对象的最大使用寿命?您可以在使用CacheManager的add方法将项目添加到缓存时指定项目的过期时间: public void Add ( string key, Object value, CacheItemPriority scavengingPriority, ICacheItemRefreshAction refreshAction, para

在我的应用程序中,我想将一些项添加到缓存中,但这些项最多应该有一天的时间


是否有OOTB方法来设置某些对象的最大使用寿命?

您可以在使用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);
    }
}
Product[]products=GetProducts();
CacheManager cache=CacheFactory.GetCacheManager();
AbsoluteTime二十四小时后=新的AbsoluteTime(DateTime.Now.AddHours(24));
SlidingTime oneMinuteSlidingTime=新的SlidingTime(TimeSpan.FromMinutes(1));
foreach(产品中的产品)
{
如果(product.ProductPrice<100)
{
cache.Add(product.ProductID,product,CacheItemPriority.Normal,null,
二十四小时后);
}
其他的
{
cache.Add(product.ProductID,product,CacheItemPriority.Normal,null,
一分钟一次);
}
}

谢谢。确实有点牵强,但很有说明性:)