У меня есть проект .net core 2.0 Web Api. У меня есть 10 веб-API и один проект библиотеки классов.Я хочу кешировать некоторые данные.Поэтому я создаю CacheHelper.cs
в библиотеке классов.И я вводить Startup.cs
в проектах веб-API.Я хочу вызвать SetCommonCacheItems, когда проект webapi запускается и попадает куда-нибудь в мой контроллер.Но когда я вызываю функцию GetCities, возвращаю ноль.В чем может быть проблема?
CacheHelper.cs (в проекте библиотеки классов)
public class CacheHelper : ICacheHelper
{
private readonly IUnitOfWork unitOfWork;
MemoryCache cache = new MemoryCache(new MemoryCacheOptions());
public CacheHelper(IUnitOfWork unitOfWork)
{
this.unitOfWork = unitOfWork;
}
public void SetCommonCacheItems()
{
var cities= unitOfWork.CityRepo.GetAll();
cache.Set("city", cities);
}
public string GetCities()
{
string obj;
cache.TryGetValue<string>("city", out obj);
return obj;
}
}
Startup.cs (в проекте Web API)
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
services.AddScoped<IUnitOfWork, UnitOfWork>();
services.AddScoped<IJwtHelper, JwtHelper>();
services.AddScoped<IAuditHelper, AuditHelper>();
services.AddMemoryCache();
services.AddScoped<ICacheHelper, CacheHelper>();
services.AddMvc();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}