我正在将一些代码从 .NET 4.6 移植到 .NET Core,但在使用 MemoryCache 时遇到了一些问题。 4.6 代码使用 MemoryCache.Default 来实例化缓存,但这在 .NET Core 中似乎不可用。在 .NET Core 中是否有与此等效的东西,或者我应该将自己的 MemoryCache 更新为单例并通过 IOC 注入(inject)它?
最佳答案
System.Runtime.Caching.MemoryCache 和 Microsoft.Extensions.Caching.Memory.MemoryCache 是完全不同的实现。
它们很相似,但有不同的问题/注意事项。
System.Runtime.Caching.MemoryCache 是旧版本 (4.6),它基于 ObjectCache,通常如您所述通过 MemoryCache.Default 使用。它实际上可以通过 .Net 标准格式的 NuGet 库在 .Net Core 中使用。 https://www.nuget.org/packages/System.Runtime.Caching/
Microsoft.Extensions.Caching.Memory.MemoryCache 是新的 .NET 核心版本,通常用于较新的 ASP 核心应用程序。它实现了 IMemoryCache 并且通常添加到服务中,如上文所述@Bogdan
https://github.com/aspnet/Extensions/blob/master/src/Caching/Memory/src/MemoryCache.cs https://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/
关于c# - MemoryCache.Default 在 .NET Core 中不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33822333/