3
私は私のASP.NET CoreアプリケーションでIMemoryCacheの標準的な使用法と考えています。なぜASP.Net CoreのIMemoryCacheのインスタンスを複数取得するのですか?
私が持っているstartup.csで:私は私のコントローラで
services.AddMemoryCache();
を:
private IMemoryCache memoryCache;
public RoleService(IMemoryCache memoryCache)
{
this.memoryCache = memoryCache;
}
しかし、私はデバッグを通過するとき、私はそれぞれに異なるアイテムを複数のメモリキャッシュで終わります1。メモリキャッシュはシングルトンだろうと思いましたか?私はthis.memoryCacheが異なるエントリが含まれて見ることができる二行目を打ったとき、私は、二つの異なるブラウザで2つのクライアントを実行している場合
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)));
}
}
:コードサンプルを更新
。
どうやってテストしましたか?より多くのコードを共有できますか? – levent
@levent更新された質問 –