Я создаю помощник в .net core 2.2 для кэширования в Redis. Когда я вызываю метод Add, он не проходит через мой конструктор для создания экземпляра IDistributedCache
.
public class Cache
{
public static IDistributedCache _cache;
public Cache(IDistributedCache cache)
{
_cache = cache;
}
public static void Add(string key, byte[] value, int expiration)
{
var options = new DistributedCacheEntryOptions()
.SetSlidingExpiration(TimeSpan.FromSeconds(expiration));
_cache.Set(key, value, options);
}
}
Я не совсем понимаю, чего мне не хватает. Я называю метод как таковой
Cache.Add("time", encodedCurrentTimeUTC, expiration);
EDIT:
Я удалил статические записи
public class Cache
{
public IDistributedCache _cache;
public Cache(IDistributedCache cache)
{
_cache = cache;
}
public void Add(string key, byte[] value, int expiration)
{
var options = new DistributedCacheEntryOptions()
.SetAbsoluteExpiration(TimeSpan.FromSeconds(expiration));
_cache.Set(key, value, options);
}
}
Но когда я пытаюсь вызвать метод
var newItem = new Cache();
newItem.Add("time", encodedCurrentTimeUTC, expiration);
Это говорит мне, что я не передаю параметр в конструктор кэша.