如何在 .NET Core 控制台应用程序中为 RestSharp 客户端设置内存缓存

How to setup In memory cache for RestSharp Client in .NET Core Console Application

我在 .NET 6 中有 C# 控制台应用程序。

我正在研究 RestSharp 客户端的设置,首先我需要在内存缓存中进行设置。 我在 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 的控制台应用程序,我必须使用 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>();

如果你想在 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);
    }
}