.NET4.6から.NETCoreにコードを移植していますが、MemoryCacheでいくつかの問題が発生しました。 4.6コードはMemoryCache.Defaultを使用してキャッシュをインスタンス化していますが、これは.NETCoreでは使用できないようです。 .NET Coreにこれに相当するものはありますか、それとも自分のMemoryCacheをシングルトンとして新しくしてIOC経由で注入する必要がありますか?
通常、シングルトンIMemoryCache
を使用します
_IServiceProvider ConfigureServices(IServiceCollection services){
...
services.AddMemoryCache();
...
}
_
ただし、キャッシュを作成することもできます
mycache = new MemoryCache(memoryCacheOptions)
より複雑なことを行う必要がある場合は、memoryCacheOptions
を-_IOptions<MemoryCacheOptions>
_から挿入して使用できます。
_myCustomMemoryCache = new MemoryCache(memoryCacheOptions);
_
https://docs.Microsoft.com/en-us/aspnet/core/performance/caching/memory
System.Runtime.Caching.MemoryCacheとMicrosoft.Extensions.Caching.Memory.MemoryCacheは完全に異なる実装です。
それらは似ていますが、問題/警告のセットが異なります。
System.Runtime.Caching.MemoryCacheは古いバージョン(4.6)であり、ObjectCacheに基づいており、通常、説明したようにMemoryCache.Defaultを介して使用されます。実際には、.Net標準形式のNuGetライブラリを介して.NetCoreで使用できます。 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.cshttps://www.nuget.org/packages/ Microsoft.Extensions.Caching.Memory /