//------------------------------------------------------------------------------ // // 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.Globalization; using System.Web.Util; using System.Web.Configuration; using System.Security.Permissions; // class CustomErrorsSection public sealed class CustomError : ConfigurationElement { private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propStatusCode = new ConfigurationProperty("statusCode", typeof(int), null, null, new IntegerValidator(100, 999), ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey); private static readonly ConfigurationProperty _propRedirect = new ConfigurationProperty("redirect", typeof(string), null, null, StdValidatorsAndConverters.NonEmptyStringValidator, ConfigurationPropertyOptions.IsRequired); static CustomError() { // Property initialization _properties = new ConfigurationPropertyCollection(); _properties.Add(_propStatusCode); _properties.Add(_propRedirect); } internal CustomError() { } public CustomError(int statusCode, string redirect) : this() { StatusCode = statusCode; Redirect = redirect; } // I believe these can be removed public override bool Equals(object customError) { CustomError o = customError as CustomError; return (o != null && o.StatusCode == StatusCode && o.Redirect == Redirect); } public override int GetHashCode() { return HashCodeCombiner.CombineHashCodes(StatusCode, Redirect.GetHashCode()); } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty("statusCode", IsRequired = true, IsKey = true)] [IntegerValidator(MinValue = 100, MaxValue = 999)] public int StatusCode { get { return (int)base[_propStatusCode]; } set { base[_propStatusCode] = value; } } [ConfigurationProperty("redirect", IsRequired = true)] [StringValidator(MinLength = 1)] public string Redirect { get { return (string)base[_propRedirect]; } set { base[_propRedirect] = value; } } } // class CustomError }