Bazı kodları .NET 4.6 til .NET Core'dan alıyorum ve MemoryCache ile bazı sorunlarınızla karşılaştım. 4.6 kodu önbelleği başlatmak için MemoryCache.Default kullanıyor, ancak bu .NET Core'da mevcut görünmüyor. .NET Core'da buna benzer bir eşdeğer var mı, yoksa kendi MemoryCache'imi bir singleton olarak mı yenmeli ve IOC üzerinden mi enjekte etmeliyim? Biraz daha karmaşık şeyler yapmak gerekiyorsaMemoryCache.Default .NET Core'da mevcut değil mi?
6
A
cevap
3
Genellikle singleton IMemoryCache
kullanmak istiyorsunuz, ama aynı zamanda önbellek
mycache = new MemoryCache(memoryCacheOptions)
oluşturabilir memoryCacheOptions
yoluyla enjekte edilebilir - IOptions<MemoryCacheOptions>
Bunun yerine biraz daha fazlası, tüm System.Runtime.Caching ad alanı .NETCore'da eksik. "Çekirdek" olmanın yolu budur, sadece bir şeyleri kaldırarak .NET'in yalın küçük bir sürümünü alırsınız. Bir çok alternatifi Nuget.org adresinden edinebilirsiniz –
Evet, ancak Microsoft.Framework.Caching.Memory içinde bulunan .NET Core'daki farklı bir MemoryCache uygulaması var. Bu uygulamayı kullanmak için kodu yeniden yazdım, ancak aynı API'ye sahip değil ve MemoryCache.Default özelliği mevcut değil. Sanırım sadece kendi başıma döneceğim :) – henningst