MemoryCache AbsoluteExpiration

gsh*_*arp 2 c# memorycache .net-core

使用MemoryCache时可以设置

  • AbsoluteExpiration
  • AbsoluteExpirationRelativeToNow

例:

    cache.GetOrCreate("key", f =>
    {
         f.AbsoluteExpiration = new DateTimeOffset(DateTime.Today.AddDays(1));
         f.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10);
        return "item";
    });
Run Code Online (Sandbox Code Playgroud)

可以同时设置两个属性,然后应用第一个过期的属性吗?还是将最后设置的属性设置为“主”?

Evk*_*Evk 6

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