关于 c#:MemoryCache AbsoluteExpiration

MemoryCache AbsoluteExpiration

当使用 MemoryCache 时,可以设置

  • AbsoluteExpiration
  • AbsoluteExpirationRelativeToNow

示例:

1
2
3
4
5
6
    cache.GetOrCreate("key", f =>
    {
         f.AbsoluteExpiration = new DateTimeOffset(DateTime.Today.AddDays(1));
         f.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10);
        return"item";
    });

这两个属性可以同时设置,先过期的那个会生效吗?
还是最后一个设置的属性是"主"?


由于这些属性属于接口 (ICacheEntry) - 它们的行为方式取决于具体的实现。如果我们采用默认的 MemoryCache (和相应的 CacheEntry 实现) - 那么是的,它们都可以设置,并且因为它们都代表绝对过期,所以较早发生的将生效,而另一个将被忽略。