Business Logic Toolkit for .NET
www.bltoolkit.net
|  Home   |  Download   |  Documentation   |  Discussions   |  License   |

  Source.Configuration.BLToolkitSection.cs

 
using System;
using System.Configuration;
using System.Security;

namespace BLToolkit.Configuration
{
    /// <summary>
    /// Implementation of custom configuration section.
    /// </summary>
    internal class BLToolkitSection: ConfigurationSection
    {
        private const string SectionName = "bltoolkit";
        private static readonly ConfigurationPropertyCollection _properties =
            new ConfigurationPropertyCollection();

        private static readonly ConfigurationProperty           _propDataProviders = 
            new ConfigurationProperty("dataProviders",           typeof(DataProviderElementCollection),
            new DataProviderElementCollection(),                 ConfigurationPropertyOptions.None);
        private static readonly ConfigurationProperty           _propDefaultConfiguration =
            new ConfigurationProperty("defaultConfiguration",    typeof(string),
            null,                                                ConfigurationPropertyOptions.None);
        private static readonly ConfigurationProperty           _propTypeFactory =
            new ConfigurationProperty("typeFactory",             typeof(TypeFactoryElement),
            null,                                                ConfigurationPropertyOptions.None);

        static BLToolkitSection()
        {
            _properties.Add(_propDataProviders);
            _properties.Add(_propDefaultConfiguration);
            _properties.Add(_propTypeFactory);
        }

        public static BLToolkitSection Instance
        {
            get
            {
                try
                {
                    return (BLToolkitSection)ConfigurationManager.GetSection(SectionName);
                }
                catch (SecurityException)
                {
                    return null;
                }
            }
        }

        protected override ConfigurationPropertyCollection Properties
        {
            get { return _properties; }
        }

        public DataProviderElementCollection DataProviders
        {
            get { return (DataProviderElementCollection) base[_propDataProviders]; }
        }

        public string DefaultConfiguration
        {
            get { return (string)base[_propDefaultConfiguration]; }
        }

        public TypeFactoryElement TypeFactory
        {
            get { return (TypeFactoryElement)base[_propTypeFactory]; }
        }
    }
}
 
© 2010 www.bltoolkit.net
support@bltoolkit.net