public DistributedCacheAccessor(IDistributedCache distributedCache, IFusionCacheSerializer serializer, FusionCacheOptions options, ILogger?logger) { if (distributedCache == null) { throw new ArgumentNullException(nameof(distributedCache)); } if (serializer == null) { throw new ArgumentNullException(nameof(serializer)); } _cache = distributedCache; _serializer = serializer; _options = options; _breakDuration = distributedCache is null ? TimeSpan.Zero : options.DistributedCacheCircuitBreakerDuration; _breakDurationTicks = _breakDuration.Ticks; _gatewayTicks = DateTimeOffset.MinValue.Ticks; _logger = logger; }
/// <inheritdoc/> public IFusionCache SetupDistributedCache(IDistributedCache distributedCache, IFusionCacheSerializer serializer) { if (distributedCache is null) { throw new ArgumentNullException(nameof(distributedCache)); } if (serializer is null) { throw new ArgumentNullException(nameof(serializer)); } _dca = new DistributedCacheAccessor(distributedCache, serializer, _options, _logger); if (_logger?.IsEnabled(LogLevel.Debug) ?? false) { _logger.LogDebug("FUSION: setup distributed cache (CACHE={DistributedCacheType} SERIALIZER={SerializerType})", distributedCache.GetType().FullName, serializer.GetType().FullName); } return(this); }
private async Task <T> LoopDeLoopAsync <T>(IFusionCacheSerializer serializer, T obj) { return(await serializer.DeserializeAsync <T>(await serializer.SerializeAsync(obj))); }
private T LoopDeLoop <T>(IFusionCacheSerializer serializer, T obj) { return(serializer.Deserialize <T>(serializer.Serialize(obj))); }