Пример #1
0
 public void Set(string key, IResponseCacheEntry entry, TimeSpan validFor)
 {
     if (entry is CachedResponse cachedResponse)
     {
         _cache.Set(
             key,
             new MemoryCachedResponse
         {
             Created    = cachedResponse.Created,
             StatusCode = cachedResponse.StatusCode,
             Headers    = cachedResponse.Headers,
             Body       = cachedResponse.Body
         },
             new MemoryCacheEntryOptions
         {
             AbsoluteExpirationRelativeToNow = validFor,
             Size = CacheEntryHelpers.EstimateCachedResponseSize(cachedResponse)
         });
     }
     else
     {
         _cache.Set(
             key,
             entry,
             new MemoryCacheEntryOptions
         {
             AbsoluteExpirationRelativeToNow = validFor,
             Size = CacheEntryHelpers.EstimateCachedVaryByRulesySize(entry as CachedVaryByRules)
         });
     }
 }
Пример #2
0
        public void Set(string key, IResponseCacheEntry entry, TimeSpan validFor)
        {
            if (entry is CachedResponse cachedResponse)
            {
                var segmentStream = new SegmentWriteStream(StreamUtilities.BodySegmentSize);
                cachedResponse.Body.CopyTo(segmentStream);

                _cache.Set(
                    key,
                    new MemoryCachedResponse
                {
                    Created      = cachedResponse.Created,
                    StatusCode   = cachedResponse.StatusCode,
                    Headers      = cachedResponse.Headers,
                    BodySegments = segmentStream.GetSegments(),
                    BodyLength   = segmentStream.Length
                },
                    new MemoryCacheEntryOptions
                {
                    AbsoluteExpirationRelativeToNow = validFor,
                    Size = CacheEntryHelpers.EstimateCachedResponseSize(cachedResponse)
                });
            }
            else
            {
                _cache.Set(
                    key,
                    entry,
                    new MemoryCacheEntryOptions
                {
                    AbsoluteExpirationRelativeToNow = validFor,
                    Size = CacheEntryHelpers.EstimateCachedVaryByRulesySize(entry as CachedVaryByRules)
                });
            }
        }