Я следовал этому уроку https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-2.2
Используется Dependency Injection, чтобы IMemoryCache
был доступен только в конкретном контроллере, например
public class TController : ControllerBase
{
public IConfiguration Configuration { get; }
private IMemoryCache _cache;
public TController(IConfiguration configuration, IMemoryCache memoryCache)
{
Configuration = configuration;
_cache = memoryCache;
}
public IActionResult GetAccessToken()
{
string key ="IDGKey";
string obj;
if (!cache.TryGetValue<string>(key, out obj))
{
obj = DateTime.Now.ToString();
_cache.Set<string>(key, obj);
}
return obj;
}
}
Теперь, если я пытаюсь получить доступ к значению _cache
в том же пространстве имен или в другом контроллере
public class RController : ControllerBase
{
public IActionResult R()
{
var cb = _cache.Get("IDGKey");
return Ok(cb);
}
}
выдает следующую ошибку -
Имя '_cache' не существует в текущем контексте (CS0103)
Как сделать _cache доступным для всех контроллеров?