Ich portiere etwas Code von .NET 4.6 bis .NET Core und habe Probleme mit MemoryCache bekommen. Der 4.6-Code verwendet MemoryCache.Default, um den Cache zu instanziieren, aber dies scheint in .NET Core nicht verfügbar zu sein. Gibt es in .NET Core eine Entsprechung dazu oder sollte ich lieber meinen eigenen MemoryCache als Singleton neu erstellen und über IOC injizieren?MemoryCache.Default in .NET Core nicht verfügbar?
6
A
Antwort
3
Im Allgemeinen würden Sie die Singleton verwenden IMemoryCache
, aber Sie können auch den Cache
mycache = new MemoryCache(memoryCacheOptions)
erstellen Wenn Sie durch injiziert werden, um etwas komplexere Sachen memoryCacheOptions
können tun müssen - IOptions<MemoryCacheOptions>
Es ist eher ein bisschen mehr, dass der gesamte Namespace System.Runtime.Caching in .NETCore fehlt. So wurde es "Core", man bekommt immer nur eine schlanke, kleine Version von .NET, indem man Sachen entfernt. Viele Alternativen sind auf Nuget.org verfügbar –
Ja, aber es gibt eine andere Implementierung von MemoryCache in .NET Core in Microsoft.Framework.Caching.Memory. Ich habe den Code umgeschrieben, um diese Implementierung zu verwenden, aber es hat nicht die exakt gleiche API und die MemoryCache.Default-Eigenschaft ist nicht vorhanden. Ich denke, ich muss nur meine eigenen rollen :) – henningst