File: net\System\Net\Configuration\SchemeSettingElement.cs
Project: ndp\fx\src\System.csproj (System)
using System;
using System.Diagnostics;
 
namespace System.Configuration
{
    public sealed class SchemeSettingElement : ConfigurationElement
    {
        private static readonly ConfigurationPropertyCollection properties;
        private static readonly ConfigurationProperty name;
        private static readonly ConfigurationProperty genericUriParserOptions;
 
        static SchemeSettingElement()
        {
            name = new ConfigurationProperty(CommonConfigurationStrings.SchemeName, typeof(string), null,
                ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
 
            genericUriParserOptions = new ConfigurationProperty(CommonConfigurationStrings.GenericUriParserOptions,
                typeof(GenericUriParserOptions), GenericUriParserOptions.Default, 
                ConfigurationPropertyOptions.IsRequired);
 
            properties = new ConfigurationPropertyCollection();
            properties.Add(name);
            properties.Add(genericUriParserOptions);
        }
 
        [ConfigurationProperty(CommonConfigurationStrings.SchemeName,
            DefaultValue = null, IsRequired = true, IsKey = true)]
        public string Name
        {
            get { return (string)this[name]; }
        }
 
        [ConfigurationProperty(CommonConfigurationStrings.GenericUriParserOptions,
            DefaultValue = ConfigurationPropertyOptions.None, IsRequired = true)]
        public GenericUriParserOptions GenericUriParserOptions
        {
            get { return (GenericUriParserOptions)this[genericUriParserOptions]; }
        }
 
        protected override ConfigurationPropertyCollection Properties
        {
            get { return properties; }
        }
    }
 
    internal sealed class SchemeSettingInternal
    {
        private string name;
        private GenericUriParserOptions options;
 
        public SchemeSettingInternal(string name, GenericUriParserOptions options)
        {
            Debug.Assert(name != null, "'name' must not be null.");
 
            this.name = name.ToLowerInvariant();
            this.options = options;
        }
 
        public string Name
        {
            get { return name; }
        }
 
        public GenericUriParserOptions Options
        {
            get { return options; }
        }
    }
}