File: Configuration\OutputCacheProfile.cs
Project: ndp\fx\src\xsp\system\Web\System.Web.csproj (System.Web)
//------------------------------------------------------------------------------
// <copyright file="OutputCacheProfile.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
 
namespace System.Web.Configuration {
    using System;
    using System.Xml;
    using System.Configuration;
    using System.Collections.Specialized;
    using System.Collections;
    using System.Globalization;
    using System.IO;
    using System.Text;
    using System.Web.UI;
    using System.ComponentModel;
    using System.Security.Permissions;
 
    // class OutputCacheSettingsSection
 
    public sealed class OutputCacheProfile : ConfigurationElement {
        private static ConfigurationPropertyCollection _properties;
        private static readonly ConfigurationProperty _propName;
        private static readonly ConfigurationProperty _propEnabled;
        private static readonly ConfigurationProperty _propDuration;
        private static readonly ConfigurationProperty _propLocation;
        private static readonly ConfigurationProperty _propSqlDependency;
        private static readonly ConfigurationProperty _propVaryByCustom;
        private static readonly ConfigurationProperty _propVaryByContentEncoding;
        private static readonly ConfigurationProperty _propVaryByHeader;
        private static readonly ConfigurationProperty _propVaryByParam;
        private static readonly ConfigurationProperty _propNoStore;
        private static readonly ConfigurationProperty _propVaryByControl;
 
        static OutputCacheProfile() {
            // Property initialization
            _properties = new ConfigurationPropertyCollection();
 
            _propName =
                new ConfigurationProperty("name",
                                            typeof(string),
                                            null,
                                            StdValidatorsAndConverters.WhiteSpaceTrimStringConverter,
                                            StdValidatorsAndConverters.NonEmptyStringValidator,
                                            ConfigurationPropertyOptions.IsRequired | 
                                            ConfigurationPropertyOptions.IsKey);
            _propEnabled = new ConfigurationProperty("enabled", 
                                            typeof(bool), 
                                            true, 
                                            ConfigurationPropertyOptions.None);
            _propDuration = new ConfigurationProperty("duration", 
                                            typeof(int), 
                                            -1, 
                                            ConfigurationPropertyOptions.None);
            _propLocation = new ConfigurationProperty("location", 
                                            typeof(OutputCacheLocation), 
                                            (OutputCacheLocation)(-1), 
                                            ConfigurationPropertyOptions.None);
            _propSqlDependency = new ConfigurationProperty("sqlDependency", 
                                            typeof(string), 
                                            null, 
                                            ConfigurationPropertyOptions.None);
            _propVaryByCustom = new ConfigurationProperty("varyByCustom", 
                                            typeof(string), 
                                            null, 
                                            ConfigurationPropertyOptions.None);
            _propVaryByControl = new ConfigurationProperty("varyByControl", 
                                            typeof(string), 
                                            null, 
                                            ConfigurationPropertyOptions.None);
            _propVaryByContentEncoding = new ConfigurationProperty("varyByContentEncoding", 
                                            typeof(string), 
                                            null, 
                                            ConfigurationPropertyOptions.None);
            _propVaryByHeader = new ConfigurationProperty("varyByHeader", 
                                            typeof(string), 
                                            null, 
                                            ConfigurationPropertyOptions.None);
            _propVaryByParam = new ConfigurationProperty("varyByParam", 
                                            typeof(string), 
                                            null, 
                                            ConfigurationPropertyOptions.None);
            _propNoStore = new ConfigurationProperty("noStore", 
                                            typeof(bool), 
                                            false, 
                                            ConfigurationPropertyOptions.None);
 
            _properties.Add(_propName);
            _properties.Add(_propEnabled);
            _properties.Add(_propDuration);
            _properties.Add(_propLocation);
            _properties.Add(_propSqlDependency);
            _properties.Add(_propVaryByCustom);
            _properties.Add(_propVaryByControl);
            _properties.Add(_propVaryByContentEncoding);
            _properties.Add(_propVaryByHeader);
            _properties.Add(_propVaryByParam);
            _properties.Add(_propNoStore);
        }
 
 
        internal OutputCacheProfile() {
        }
 
        public OutputCacheProfile(string name) {
            Name = name;
        }
 
        protected override ConfigurationPropertyCollection Properties {
            get {
                return _properties;
            }
        }
 
        [ConfigurationProperty("name", IsRequired = true, IsKey = true, DefaultValue = "")]
        [TypeConverter(typeof(WhiteSpaceTrimStringConverter))]
        [StringValidator(MinLength = 1)]
        public string Name {
            get {
                return (string)base[_propName];
            }
            set {
                base[_propName] = value;
            }
        }
 
        [ConfigurationProperty("enabled", DefaultValue = true)]
        public bool Enabled {
            get {
                return (bool)base[_propEnabled];
            }
            set {
                base[_propEnabled] = value;
            }
        }
 
        [ConfigurationProperty("duration", DefaultValue = -1)]
        public int Duration {
            get {
                return (int)base[_propDuration];
            }
            set {
                base[_propDuration] = value;
            }
        }
 
        [ConfigurationProperty("location")]
        public OutputCacheLocation Location {
            get {
                return (OutputCacheLocation)base[_propLocation];
            }
            set {
                base[_propLocation] = value;
            }
        }
 
        [ConfigurationProperty("sqlDependency")]
        public string SqlDependency {
            get {
                return (string)base[_propSqlDependency];
            }
            set {
                base[_propSqlDependency] = value;
            }
        }
 
        [ConfigurationProperty("varyByCustom")]
        public string VaryByCustom {
            get {
                return (string)base[_propVaryByCustom];
            }
            set {
                base[_propVaryByCustom] = value;
            }
        }
 
        [ConfigurationProperty("varyByControl")]
        public string VaryByControl {
            get {
                return (string)base[_propVaryByControl];
            }
            set {
                base[_propVaryByControl] = value;
            }
        }
 
        [ConfigurationProperty("varyByContentEncoding")]
        public string VaryByContentEncoding {
            get {
                return (string)base[_propVaryByContentEncoding];
            }
            set {
                base[_propVaryByContentEncoding] = value;
            }
        }
 
        [ConfigurationProperty("varyByHeader")]
        public string VaryByHeader {
            get {
                return (string)base[_propVaryByHeader];
            }
            set {
                base[_propVaryByHeader] = value;
            }
        }
 
        [ConfigurationProperty("varyByParam")]
        public string VaryByParam {
            get {
                return (string)base[_propVaryByParam];
            }
            set {
                base[_propVaryByParam] = value;
            }
        }
 
        [ConfigurationProperty("noStore", DefaultValue = false)]
        public bool NoStore {
            get {
                return (bool)base[_propNoStore];
            }
            set {
                base[_propNoStore] = value;
            }
        }
    }
}