Mic*_*Mao 5 c# asp.net asp.net-core
版本是rc1.在我的旧项目中,有类似的代码
System.Web.Caching.Cache c = System.Web.HttpRuntime.Cache;
System.Collections.IDictionaryEnumerator cacheEnumerator = c.GetEnumerator();
while (cacheEnumerator.MoveNext())
{....}
Run Code Online (Sandbox Code Playgroud)
在我使用的核心1中IMemoryCache,我可以通过密钥获得缓存
var c = this._memoryCache;
var data = c.Get("data");
Run Code Online (Sandbox Code Playgroud)
我想创建一个列出所有缓存的视图.如何在Core 1中获取所有缓存?
在github上查看ASP.NET Core的MemoryCache实现的源代码,您可以看到该类没有公开任何扫描或迭代缓存条目列表的功能.
您最接近的是使用反射来读取内部缓存字典:
private readonly Dictionary<object, CacheEntry> _entries;
Run Code Online (Sandbox Code Playgroud)
将反射代码包装在一个扩展方法中,该方法接受IMemoryCache并返回一个IEnumerable<CacheEntry>并且你很好 - 但是涉及到几个风险:
IMemoryCache.您可能有一天会用不同的实现替换它,这会破坏.IMemoryCache方法,但即使这样,也存在风险.但是,了解风险,您可以前进并完成工作.
| 归档时间: |
|
| 查看次数: |
1662 次 |
| 最近记录: |