【发布时间】:2018-10-25 02:39:47
【问题描述】:
我有 .net core 2.0 Web Api 项目。我有 10 个 Web Api 和一个类库项目。我想缓存一些数据。所以我在类库中创建CacheHelper.cs。我在 web api 项目中注入Startup.cs。我想在 webapi 项目启动并到达我的控制器中的任何位置时调用 SetCommonCacheItems。但是当我调用 GetCities 函数时,返回 null。有什么问题?
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>();
}
【问题讨论】:
-
请停止使用 .NET Core 2.0。它具有无法修复的已知安全问题。例如,CVE-2018-8292:.NET Core 信息泄露漏洞。我建议尽快升级到 2.1。
-
感谢您的回复。我已经在使用 2.1。我只是为了提问而写的。
标签: c# asp.net-core .net-core