J'ai ce que je crois être une utilisation standard de IMemoryCache dans mon application ASP.NET Core.Pourquoi obtenir plusieurs instances de IMemoryCache dans ASP.Net Core?
En startup.cs je:
services.AddMemoryCache();
Dans mes contrôleurs je:
private IMemoryCache memoryCache;
public RoleService(IMemoryCache memoryCache)
{
this.memoryCache = memoryCache;
}
Pourtant, quand je passe par debug, je me retrouve avec plusieurs caches de mémoire avec différents éléments de chaque un. Je pensais que le cache mémoire serait un singleton?
mis à jour avec exemple de code:
public List<FunctionRole> GetFunctionRoles()
{
var cacheKey = "RolesList";
var functionRoles = this.memoryCache.Get(cacheKey) as List<FunctionRole>;
if (functionRoles == null)
{
functionRoles = this.functionRoleDAL.ListData(orgId);
this.memoryCache.Set(cacheKey, functionRoles, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromDays(1)));
}
}
Si je lance deux clients dans deux navigateurs différents, quand je frappe la deuxième ligne, je peux voir this.memoryCache contient différentes entrées.
comment l'avez-vous testé? pouvez-vous partager plus de code. – levent
@levent question mise à jour –