2015-11-20 2 views
6

Я переношу некоторый код из .NET 4.6 с .NET Core и столкнулся с некоторыми проблемами с MemoryCache. Код 4.6 использует MemoryCache.Default для создания экземпляра кеша, но это, похоже, не доступно в .NET Core. Есть ли какой-либо эквивалент этому в .NET Core, или я должен скорее обновить свой собственный MemoryCache в качестве сингла и ввести его через IOC?MemoryCache.Default недоступен в .NET Core?

+4

Это немного больше, поэтому в .NETCore отсутствует пространство имен System.Runtime.Caching. Вот как это должно быть «ядро», вы только когда-либо получаете скудную небольшую версию .NET, удаляя вещи. Множество альтернатив доступно на Nuget.org –

+1

Да, но существует другая реализация MemoryCache в .NET Core, расположенная в Microsoft.Framework.Caching.Memory. Я переписал код для использования этой реализации, но у него нет того же API, и свойство MemoryCache.Default не существует. Наверное, мне просто нужно катиться самостоятельно :) – henningst

ответ

3

Как правило, вы бы использовать синглтон IMemoryCache, но вы также можете создать кэш

mycache = new MemoryCache(memoryCacheOptions)

Если вам нужно сделать некоторые более сложные вещи memoryCacheOptions может быть введен через - IOptions<MemoryCacheOptions>

https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Caching/Memory/IMemoryCache/

Смежные вопросы