相关疑难解决方法(0)

如何从ASP.NET核心中的IMemoryCache中删除所有对象(重置)

我可以找到一种remove方法来IMemoryCache从其键中删除对象.有没有办法重置整个缓存并删除所有对象?

编辑:

如何清除MemoryCache? 链接中提供的Dispose方法在asp.net 5中给出了一个例外.ObjectDisposedException: Cannot access a disposed object. Object name: 'Microsoft.Extensions.Caching.Memory.MemoryCache'.

c# asp.net-core-mvc asp.net-core

21
推荐指数
5
解决办法
1万
查看次数

我可以迭代.NET4 MemoryCache吗?

我正在使用提供的缓存System.Runtime.Caching.MemoryCache.

我想枚举缓存的项目,以便我可以无效(逐出然后重新加载)项目

foreach (var item in MemoryCache.Default) { item.invalidate() }
Run Code Online (Sandbox Code Playgroud)

这里发现的官方文件说:

!重要:检索MemoryCache实例的枚举器是一项资源密集型和阻塞操作.因此,不应在生产应用程序中使用枚举器.

当然必须有一种简单有效的方法来迭代缓存的项目?

c# asp.net caching .net-4.0

19
推荐指数
1
解决办法
1万
查看次数

如何在asp.net核心中迭代MemoryCache?

IMemoryCache中没有可用的方法允许迭代每个缓存的项目.我的项目很小,我不想使用像Redis这样的其他选项.

namepsace    Microsoft.Extensions.Caching.Memory{
        public static class CacheExtensions
    {
        public static object Get(this IMemoryCache cache, object key);
        public static TItem Get<TItem>(this IMemoryCache cache, object key);
        public static TItem GetOrCreate<TItem>(this IMemoryCache cache, object key, Func<ICacheEntry, TItem> factory);
        [AsyncStateMachine(typeof(CacheExtensions.<GetOrCreateAsync>d__9<>))]
        public static Task<TItem> GetOrCreateAsync<TItem>(this IMemoryCache cache, object key, Func<ICacheEntry, Task<TItem>> factory);
        public static TItem Set<TItem>(this IMemoryCache cache, object key, TItem value);
        public static TItem Set<TItem>(this IMemoryCache cache, object key, TItem value, DateTimeOffset absoluteExpiration);
        public static TItem Set<TItem>(this IMemoryCache cache, object key, TItem value, TimeSpan …
Run Code Online (Sandbox Code Playgroud)

c# memorycache asp.net-core

3
推荐指数
2
解决办法
6937
查看次数