<PackageReference Include="Polly" Version="8.5.2" />

GenericCacheProvider<TCacheFormat>

sealed class GenericCacheProvider<TCacheFormat> : ISyncCacheProvider<TCacheFormat>
Provides a strongly-typed wrapper over a non-generic CacheProvider.
using System; using System.Runtime.CompilerServices; namespace Polly.Caching { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] internal sealed class GenericCacheProvider<[System.Runtime.CompilerServices.Nullable(2)] TCacheFormat> : ISyncCacheProvider<TCacheFormat> { private readonly ISyncCacheProvider _wrappedCacheProvider; internal GenericCacheProvider(ISyncCacheProvider nonGenericCacheProvider) { if (nonGenericCacheProvider == null) throw new ArgumentNullException("nonGenericCacheProvider"); _wrappedCacheProvider = nonGenericCacheProvider; } [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 2 })] (bool, TCacheFormat) ISyncCacheProvider<TCacheFormat>.TryGet(string key) { (bool, object) valueTuple = _wrappedCacheProvider.TryGet(key); bool item = valueTuple.Item1; object item2 = valueTuple.Item2; return (item, (TCacheFormat)(item2 ?? ((object)default(TCacheFormat)))); } void ISyncCacheProvider<TCacheFormat>.Put(string key, [System.Runtime.CompilerServices.Nullable(2)] TCacheFormat value, Ttl ttl) { _wrappedCacheProvider.Put(key, value, ttl); } } }