Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / HttpCacheVaryByContentEncodings.cs / 1 / HttpCacheVaryByContentEncodings.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * HttpCacheVaryByContentEncodings * * Copyright (c) 1998 Microsoft Corporation */ namespace System.Web { using System.Text; using System.Runtime.InteropServices; using System.Web.Util; using System.Security.Permissions; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class HttpCacheVaryByContentEncodings { String[] _contentEncodings; bool _isModified; internal HttpCacheVaryByContentEncodings() { Reset(); } internal void Reset() { _isModified = false; _contentEncodings = null; } /* * Reset based on content encodings. */ internal void ResetFromContentEncodings(String[] contentEncodings) { Reset(); if (contentEncodings != null) { _isModified = true; _contentEncodings = new String[contentEncodings.Length]; for (int i = 0; i < contentEncodings.Length; i++) { _contentEncodings[i] = contentEncodings[i]; } } } // the response is not cacheable if we're varying by content encoding // and the content-encoding header is not one of the encodings that we're // varying by internal bool IsCacheableEncoding(string coding) { // return true if we are not varying by content encoding. if (_contentEncodings == null) { return true; } // return true if there is no Content-Encoding header if (coding == null) { return true; } // return true if the Content-Encoding header is listed for (int i = 0; i < _contentEncodings.Length; i++) { if (_contentEncodings[i] == coding) { return true; } } // return false if the Content-Encoding header is not listed return false; } internal bool IsModified() { return _isModified; } internal String[] GetContentEncodings() { return _contentEncodings; } // // Public methods and properties // ///Provides a type-safe way to vary by Content-Encoding. ////// public bool this[String contentEncoding] { get { if (String.IsNullOrEmpty(contentEncoding)) { throw new ArgumentNullException(SR.GetString(SR.Parameter_NullOrEmpty, "contentEncoding")); } if (_contentEncodings == null) { return false; } for(int i = 0; i < _contentEncodings.Length; i++) { if (_contentEncodings[i] == contentEncoding) { return true; } } return false; } set { if (String.IsNullOrEmpty(contentEncoding)) { throw new ArgumentNullException(SR.GetString(SR.Parameter_NullOrEmpty, "contentEncoding")); } // if someone enabled it, don't allow someone else to disable it. if (!value) { return; } _isModified = true; if (_contentEncodings != null) { string[] contentEncodings = new String[_contentEncodings.Length + 1]; for (int i = 0; i < _contentEncodings.Length; i++) { contentEncodings[i] = _contentEncodings[i]; } contentEncodings[contentEncodings.Length - 1] = contentEncoding; _contentEncodings = contentEncodings; return; } _contentEncodings = new String[1]; _contentEncodings[0] = contentEncoding; } } } }Default property. /// Indexed property indicating that a cache should (or should not) vary according /// to a Content-Encoding. ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextContainerChangeEventArgs.cs
- ExecutionEngineException.cs
- FileInfo.cs
- Delay.cs
- WebHeaderCollection.cs
- XPathParser.cs
- ToolboxItemFilterAttribute.cs
- NestPullup.cs
- StateWorkerRequest.cs
- ElementAction.cs
- QEncodedStream.cs
- SplitterCancelEvent.cs
- ProfileService.cs
- DrawListViewColumnHeaderEventArgs.cs
- MouseButtonEventArgs.cs
- MediaPlayerState.cs
- CreateUserErrorEventArgs.cs
- CollectionView.cs
- ListControl.cs
- DataGridParentRows.cs
- MaskedTextBox.cs
- Assert.cs
- PriorityQueue.cs
- ShaperBuffers.cs
- DataListCommandEventArgs.cs
- CommentAction.cs
- SuppressMessageAttribute.cs
- TemplatePartAttribute.cs
- EUCJPEncoding.cs
- TypeConstant.cs
- StringValidatorAttribute.cs
- unitconverter.cs
- XmlSchemaException.cs
- ResXResourceWriter.cs
- mansign.cs
- FloaterParaClient.cs
- OptimizedTemplateContent.cs
- TypeContext.cs
- BinaryOperationBinder.cs
- unsafenativemethodstextservices.cs
- FactoryGenerator.cs
- XmlSchemaAttribute.cs
- HtmlEmptyTagControlBuilder.cs
- SettingsBase.cs
- ByeOperationAsyncResult.cs
- ContextDataSourceView.cs
- UTF32Encoding.cs
- LateBoundBitmapDecoder.cs
- __TransparentProxy.cs
- FixedSOMPageConstructor.cs
- _UncName.cs
- EntityKey.cs
- TypeDescriptor.cs
- CellParaClient.cs
- HwndSource.cs
- XPathDocumentIterator.cs
- DataPager.cs
- SqlConnectionString.cs
- WorkflowTimerService.cs
- BoundsDrawingContextWalker.cs
- DataGridViewCellPaintingEventArgs.cs
- FileSecurity.cs
- Privilege.cs
- DataGridHeaderBorder.cs
- Clock.cs
- ModelFunction.cs
- LogConverter.cs
- MsmqIntegrationSecurityElement.cs
- DrawListViewSubItemEventArgs.cs
- Mapping.cs
- PagedControl.cs
- SoapReflectionImporter.cs
- _ListenerRequestStream.cs
- XmlSchemaInferenceException.cs
- HwndSubclass.cs
- LicenseManager.cs
- KerberosRequestorSecurityToken.cs
- ResolveNameEventArgs.cs
- XmlSchemaAll.cs
- StringFreezingAttribute.cs
- UdpChannelListener.cs
- SessionPageStateSection.cs
- DetailsViewRowCollection.cs
- BinaryParser.cs
- ContentHostHelper.cs
- ScriptControl.cs
- ProviderMetadataCachedInformation.cs
- DesignerTransaction.cs
- BooleanSwitch.cs
- ParseNumbers.cs
- COM2PictureConverter.cs
- ProviderUtil.cs
- SemanticResultValue.cs
- DataGridViewRowEventArgs.cs
- ListControlConvertEventArgs.cs
- CodeMethodInvokeExpression.cs
- PerformanceCountersElement.cs
- CollectionType.cs
- MarshalByValueComponent.cs
- CodeAccessSecurityEngine.cs