【问题标题】:How do I use Microsoft.Extensions.Caching.Memory's IMemoryCache.CreateEntry and ICacheEntry?这个界面怎么用?
【发布时间】:2021-12-10 10:46:04
【问题描述】:

我找到了这个界面,我想使用它。但我不明白如何使用 Create 功能...

namespace Microsoft.Extensions.Caching.Memory
{
    public interface IMemoryCache : IDisposable
    {
        ICacheEntry CreateEntry(object key);
        void Remove(object key);
        bool TryGetValue(object key, out object value);
    }
}

当函数调用中只有键而不是值时,如何在 CreateEntry 中存储一些东西?如何在密钥中存储东西?

所以我有这个:

class RedisObjectTestCache : IMemoryCache
    {
        public ICacheEntry CreateEntry(object key)
        {
            Console.WriteLine("Created key: " + key);
            return new CacheEntryTest() { };
        }

        public void Dispose()
        {
            Console.WriteLine("Dispose");
            return;
        }

        public void Remove(object key)
        {
            Console.WriteLine("Removed key: " + key);
            return;
        }

        public bool TryGetValue(object key, out object value)
        {
            Console.WriteLine("Requested key: " + key);
            value = "";
            return false;
        }
    }

然后我用框架调用它:

QueryCacheManager.Cache = new RedisObjectTestCache();

我能以某种方式获得价值吗?

【问题讨论】:

标签: c# .net-5


【解决方案1】:

CreateEntry 方法返回的The ICacheEntry instance 有一个Value 属性,您可以将其设置为要缓存的值,以及可以用来控制缓存的其他几个属性。

还有几个extension methods for the IMemoryCache interface 提供了在缓存中设置项目的简写方式。

【讨论】:

猜你喜欢
  • 2018-02-22
  • 2022-11-18
  • 2011-02-09
  • 1970-01-01
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多