c# - 如何在 .NET Core Console Application 中为 RestSharp 客户端设置内存缓存

我在 .NET 6 中有 C# console application。

我正在研究 RestSharp 客户端的设置,首先我需要在内存中设置 caching。我在 asp.net 中做了一个使用 System.Runtime.Caching 的实现

差异示例:

public class InMemoryCache : ICacheService
  {
    public T Get<T>(string cacheKey) where T : class
    {
        return MemoryCache.Default.Get(cacheKey) as T;
    }

MemoryCache.Default 不是扩展库 Microsoft.Extensions.Caching.Memory 的一部分,但是对于带有 .NET 6 的 console application 我必须使用 Microsoft.Extensions.Caching.Memory

我将如何使用 Microsoft.Extensions.Caching.Memory 实现上述内容

这也是我的配置

//class Program
 private static InMemoryCache _cache;

 //Main

 services.AddMemoryCache();
 var serviceProvider = services.BuildServiceProvider();
 _cache = serviceProvider.GetService<InMemoryCache>();

回答1

如果你想要自己的 IMemoryCache 包装器 - 你应该将 IMemoryCache 注入 InMemoryCache 并使用它(InMemoryCache 也应该在 DI 中注册为 InMemoryCache 以便你可以解决它):

public class InMemoryCache : ICacheService
{
    private readonly IMemoryCache _cache;

    public InMemoryCache(IMemoryCache cache)
    {
        _cache = cache;
    }
    public T Get<T>(string cacheKey) where T : class
    {
        return _cache.Get<T>(cacheKey);
    }
}

相似文章

最新文章