Удалить все элементы из MemoryCache - PullRequest
0 голосов
/ 20 июня 2020

Мне бы хотелось удалить все элементы из MemoryCache.

То, что я уже пробовал:

var listDBCalls = ((FixedSizedQueue<DalCacheDto>)MemoryCache.Default.Get($"DAL_CACHE_{HttpContext.Current?.User?.Identity?.Name}"))?.ToList();
listDBCalls.clear();

Если я смотрю этот код в отладчике, он показывает, что listDBCalls действительно пуст. Но повторный звонок:

((FixedSizedQueue<DalCacheDto>)MemoryCache.Default.Get($"DAL_CACHE_{HttpContext.Current?.User?.Identity?.Name}"))?.ToList()

показывает мне, что все предметы все еще там. Почему?

1 Ответ

1 голос
/ 20 июня 2020

Избегайте использования кэша памяти по умолчанию, чтобы иметь больший контроль. Создайте свой собственный кеш памяти (например, как свойство stati c класса stati c), и когда вам нужно его стереть, вы можете просто создать новый, чтобы заменить старый. Не забудьте вызвать метод удаления.

Кажется, способ go: Как очистить MemoryCache?

Edit Когда Я прочитал ваш код, я не уверен, что вы хотите делать. Если вы хотите удалить конкретную запись (что, кажется, так), вы можете использовать метод remove .

MemoryCache.Default.Remove($"DAL_CACHE_{HttpContext.Current?.User?.Identity?.Name}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...