|
using System;
using System.Configuration;
using System.Web.Configuration;
using System.Collections.Generic;
namespace HttpZipFolder
{
/// <summary>
/// HttpZip configuration classes
/// </summary>
public class HttpZipConfigurationSection : ConfigurationSection
{
public const string SectionName = "httpZip";
const string DefaultHttpZipPath = "~/httpzip.ashx";
static ConfigurationProperty _itemsProperty = new ConfigurationProperty("", typeof(HttpZipConfiguration), null, ConfigurationPropertyOptions.IsDefaultCollection);
static ConfigurationProperty _pathProperty = new ConfigurationProperty("path", typeof(string), DefaultHttpZipPath, ConfigurationPropertyOptions.None);
static ConfigurationPropertyCollection _properties = new ConfigurationPropertyCollection();
static HttpZipConfigurationSection()
{
_properties.Add(_itemsProperty);
_properties.Add(_pathProperty);
}
protected override ConfigurationPropertyCollection Properties
{
get { return _properties; }
}
[ConfigurationProperty("", IsDefaultCollection = true)]
public HttpZipConfiguration Items
{
get { return (HttpZipConfiguration)base[_itemsProperty]; }
}
[ConfigurationProperty("path", DefaultValue = DefaultHttpZipPath)]
public string Path
{
get { return (string)base[_pathProperty]; }
set { base[_pathProperty] = value; }
}
public static HttpZipConfigurationSection Current
{
get { return (HttpZipConfigurationSection)WebConfigurationManager.GetSection(SectionName); }
}
}
[ConfigurationCollection(typeof(HttpZipConfigurationItem))]
public class HttpZipConfiguration : ConfigurationElementCollection
{
public new HttpZipConfigurationItem this[string name]
{
get { return (HttpZipConfigurationItem)BaseGet(name); }
}
public HttpZipConfiguration()
{
}
protected override ConfigurationElement CreateNewElement()
{
return new HttpZipConfigurationItem();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((HttpZipConfigurationItem)element).Name;
}
public void Add(HttpZipConfigurationItem item)
{
BaseAdd(item);
}
public void Clear()
{
BaseClear();
}
public void Remove(string name)
{
BaseRemove(name);
}
}
public class HttpZipConfigurationItem : ConfigurationElement
{
static ConfigurationProperty _nameProperty = new ConfigurationProperty("name", typeof(string), null, ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
static ConfigurationProperty _prefixProperty = new ConfigurationProperty("prefix", typeof(string), null, ConfigurationPropertyOptions.IsRequired);
static ConfigurationProperty _zipPathProperty = new ConfigurationProperty("zipPath", typeof(string), null, ConfigurationPropertyOptions.IsRequired);
static ConfigurationPropertyCollection _properties = new ConfigurationPropertyCollection();
static HttpZipConfigurationItem()
{
_properties.Add(_nameProperty);
_properties.Add(_prefixProperty);
_properties.Add(_zipPathProperty);
}
protected override ConfigurationPropertyCollection Properties
{
get { return _properties; }
}
[ConfigurationProperty("name", IsKey = true, IsRequired = true)]
public string Name
{
get { return (string)base[_nameProperty]; }
set { base[_nameProperty] = value; }
}
[ConfigurationProperty("prefix", IsRequired = true)]
public string Prefix
{
get { return (string)base[_prefixProperty]; }
set { base[_prefixProperty] = value; }
}
[ConfigurationProperty("zipPath", IsKey = true, IsRequired = true)]
public string ZipPath
{
get { return (string)base[_zipPathProperty]; }
set { base[_zipPathProperty] = value; }
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.