internal override bool TryRetrieve(string key, out RequestCacheEntry cacheEntry, out Stream readStream) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry clonedObject = this._Entry; cacheEntry = null; readStream = null; if ((clonedObject == null) || (clonedObject.Key != key)) { Stream stream; RequestCacheEntry entry2; if (!this._UseWinInet || !base.TryRetrieve(key, out entry2, out stream)) { return false; } clonedObject = new FrozenCacheEntry(key, entry2, stream); stream.Close(); this._Entry = clonedObject; } cacheEntry = FrozenCacheEntry.Create(clonedObject); readStream = new ReadOnlyStream(clonedObject.StreamBytes); return true; }
internal override bool TryRetrieve(string key, out RequestCacheEntry cacheEntry, out Stream readStream) { if (key == null) throw new ArgumentNullException("key"); FrozenCacheEntry chkEntry = _Entry; cacheEntry = null; readStream = null; if (chkEntry == null || chkEntry.Key != key) { return false; } cacheEntry = FrozenCacheEntry.Create(chkEntry); readStream = new ReadOnlyStream(chkEntry.StreamBytes); return true; }