File: net\System\Net\Configuration\ConnectionManagementElement.cs
Project: ndp\fx\src\System.csproj (System)
//------------------------------------------------------------------------------
// <copyright file="ConnectionManagementElement.cs" company="Microsoft Corporation">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
 
namespace System.Net.Configuration
{
    using System;
    using System.Configuration;
    using System.Reflection;
    using System.Security.Permissions;
 
    public sealed class ConnectionManagementElement : ConfigurationElement
    {
        public ConnectionManagementElement()
        {
            this.properties.Add(this.address);
            this.properties.Add(this.maxconnection);
        }
 
        public ConnectionManagementElement(string address, int maxConnection) : this()
        {
            this.Address = address;
            this.MaxConnection = maxConnection;
        }
 
        protected override ConfigurationPropertyCollection Properties
        {
            get 
            {
                return this.properties;
            }
        }
 
        [ConfigurationProperty(ConfigurationStrings.Address, IsRequired=true, IsKey = true)]
        public string Address
        {
            get { return (string)this[this.address]; }
            set { this[this.address] = value; }
        }
 
        [ConfigurationProperty(ConfigurationStrings.MaxConnection, IsRequired=true, DefaultValue=(int)1)]
        public int MaxConnection
        {
            get { return (int)this[this.maxconnection]; }
            set { this[this.maxconnection] = value; }
        }
 
        internal string Key
        {
            get { return this.Address; }
        }
        
        ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
 
        readonly ConfigurationProperty address =
            new ConfigurationProperty(ConfigurationStrings.Address, 
                                      typeof(string), 
                                      null, 
                                      ConfigurationPropertyOptions.IsKey);
 
        // CODE REVIEWER: Should the default value here be int.MaxInt, 2, or something else?
        readonly ConfigurationProperty maxconnection =
            new ConfigurationProperty(ConfigurationStrings.MaxConnection, 
                                      typeof(int), 
                                      1, 
                                      ConfigurationPropertyOptions.None);
 
    }
}