如何在 .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);
}
}
我在 .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);
}
}