GenericCacheProvider<TCacheFormat>
Provides a strongly-typed wrapper over a non-generic CacheProvider.
using System;
namespace Polly.Caching
{
internal class GenericCacheProvider<TCacheFormat> : ISyncCacheProvider<TCacheFormat>
{
private readonly ISyncCacheProvider _wrappedCacheProvider;
internal GenericCacheProvider(ISyncCacheProvider nonGenericCacheProvider)
{
if (nonGenericCacheProvider == null)
throw new ArgumentNullException("nonGenericCacheProvider");
_wrappedCacheProvider = nonGenericCacheProvider;
}
(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, TCacheFormat value, Ttl ttl)
{
_wrappedCacheProvider.Put(key, value, ttl);
}
}
}