//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.Web.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.IO; using System.Text; using System.Web.Caching; using System.ComponentModel; using System.Security.Permissions; /* */ public sealed class CacheSection : ConfigurationSection { internal static TimeSpan DefaultPrivateBytesPollTime = new TimeSpan(0, 2, 0); private static ConfigurationPropertyCollection _properties; #if NOT_UNTIL_LATER private static readonly ConfigurationProperty _propCacheAPIEnabled; private static readonly ConfigurationProperty _propDisableDependencies; #endif private static readonly ConfigurationProperty _propDisableMemoryCollection; private static readonly ConfigurationProperty _propDisableExpiration; private static readonly ConfigurationProperty _propPrivateBytesLimit; private static readonly ConfigurationProperty _propPercentagePhysicalMemoryUsedLimit; private static readonly ConfigurationProperty _propPrivateBytesPollTime; private static readonly ConfigurationProperty _propProviders; private static readonly ConfigurationProperty _propDefaultProvider; static CacheSection() { // Property initialization #if NOT_UNTIL_LATER _propCacheAPIEnabled = new ConfigurationProperty("cacheAPIEnabled", typeof(bool), true, ConfigurationPropertyOptions.None); _propDisableDependencies = new ConfigurationProperty("disableDependencies", typeof(bool), false, ConfigurationPropertyOptions.None); #endif _propProviders = new ConfigurationProperty("providers", typeof(ProviderSettingsCollection), null, ConfigurationPropertyOptions.None); _propDefaultProvider = new ConfigurationProperty("defaultProvider", typeof(string), null, null, StdValidatorsAndConverters.NonEmptyStringValidator, ConfigurationPropertyOptions.None); _propDisableMemoryCollection = new ConfigurationProperty("disableMemoryCollection", typeof(bool), false, ConfigurationPropertyOptions.None); _propDisableExpiration = new ConfigurationProperty("disableExpiration", typeof(bool), false, ConfigurationPropertyOptions.None); _propPrivateBytesLimit = new ConfigurationProperty("privateBytesLimit", typeof(long), (long)0, null, new LongValidator(0, long.MaxValue), ConfigurationPropertyOptions.None); _propPercentagePhysicalMemoryUsedLimit = new ConfigurationProperty("percentagePhysicalMemoryUsedLimit", typeof(int), (int)0, null, new IntegerValidator(0, 100), ConfigurationPropertyOptions.None); _propPrivateBytesPollTime = new ConfigurationProperty("privateBytesPollTime", typeof(TimeSpan), DefaultPrivateBytesPollTime, StdValidatorsAndConverters.InfiniteTimeSpanConverter, StdValidatorsAndConverters.PositiveTimeSpanValidator, ConfigurationPropertyOptions.None); _properties = new ConfigurationPropertyCollection(); #if NOT_UNTIL_LATER _properties.Add(_propCacheAPIEnabled); _properties.Add(_propDisableDependencies); #endif _properties.Add(_propProviders); _properties.Add(_propDefaultProvider); _properties.Add(_propDisableMemoryCollection); _properties.Add(_propDisableExpiration); _properties.Add(_propPrivateBytesLimit); _properties.Add(_propPercentagePhysicalMemoryUsedLimit); _properties.Add(_propPrivateBytesPollTime); } public CacheSection() { } [ConfigurationProperty("providers")] public ProviderSettingsCollection Providers { get { return (ProviderSettingsCollection)base[_propProviders]; } } [ConfigurationProperty("defaultProvider", DefaultValue = null)] [StringValidator(MinLength = 1)] public string DefaultProvider { get { return (string)base[_propDefaultProvider]; } set { base[_propDefaultProvider] = value; } } #if NOT_UNTIL_LATER [ConfigurationProperty("cacheAPIEnabled", DefaultValue = true)] public bool CacheAPIEnabled { get { return (bool)base[_propCacheAPIEnabled]; } set { base[_propCacheAPIEnabled] = value; } } #endif [ConfigurationProperty("disableMemoryCollection", DefaultValue = false)] public bool DisableMemoryCollection { get { return (bool)base[_propDisableMemoryCollection]; } set { base[_propDisableMemoryCollection] = value; } } [ConfigurationProperty("disableExpiration", DefaultValue = false)] public bool DisableExpiration { get { return (bool)base[_propDisableExpiration]; } set { base[_propDisableExpiration] = value; } } #if NOT_UNTIL_LATER [ConfigurationProperty("disableDependencies", DefaultValue = false)] public bool DisableDependencies { get { return (bool)base[_propDisableDependencies]; } set { base[_propDisableDependencies] = value; } } #endif [ConfigurationProperty("privateBytesLimit", DefaultValue = (long)0)] [LongValidator(MinValue = 0)] public long PrivateBytesLimit { get { return (long)base[_propPrivateBytesLimit]; } set { base[_propPrivateBytesLimit] = value; } } [ConfigurationProperty("percentagePhysicalMemoryUsedLimit", DefaultValue = (int)0)] [IntegerValidator(MinValue = 0, MaxValue = 100)] public int PercentagePhysicalMemoryUsedLimit { get { return (int)base[_propPercentagePhysicalMemoryUsedLimit]; } set { base[_propPercentagePhysicalMemoryUsedLimit] = value; } } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty("privateBytesPollTime", DefaultValue = "00:02:00")] [TypeConverter(typeof(InfiniteTimeSpanConverter))] public TimeSpan PrivateBytesPollTime { get { return (TimeSpan)base[_propPrivateBytesPollTime]; } set { base[_propPrivateBytesPollTime] = value; } } } }