Как создать пользовательский раздел конфигурации в app.config - PullRequest
2 голосов
/ 20 сентября 2011

Я хочу добавить пользовательский раздел конфигурации в файл app.config следующим образом

<Companies>
  <Company  name="" code=""/>
  <Company  name="" code=""/>
</Companies>

<Employees>
  <Employee name="" Des="" addr="" sal=""/>
  <Employee name="" Des="" addr="" sal=""/>
</Employeess>

<Departments>
  <Department Id="" Projects=""/>
</Departments>

<Projects>
  <Project Path=""/>
</Projects>

В разделе «Отдел» имеется в виду раздел «Проекты».

Кто-нибудь может сказать мне, как это сделать? И как получить к нему доступ в моем коде?

@ Бхаскар: Пожалуйста, найдите код для вашего комментария.

 public class RegisterCompaniesConfig : ConfigurationSection
    {
        public static RegisterCompaniesConfig GetConfig()
        {
            return (RegisterCompaniesConfig)System.Configuration.ConfigurationManager.GetSection("RegisterCompanies")?? new RegisterCompaniesConfig();
        } 
        [System.Configuration.ConfigurationProperty("Companies")]       
        public Companies Companies
        {
            get
            {
                object o = this["Companies"]; return o as Companies;
            }
        }
    } 

public class Companies : ConfigurationElementCollection
    {
        public Company this[int index] 
        { get { return base.BaseGet(index) as Company; } 
            set
            {
                if (base.BaseGet(index) != null)
                {
                    base.BaseRemoveAt(index);
                } 
                this.BaseAdd(index, value);
            } 
        } 

        protected override System.Configuration.ConfigurationElement CreateNewElement() 
        { return new Company(); 
        } 

        protected override object GetElementKey(System.Configuration.ConfigurationElement element)
        { return ((Company)element).Name; }
    } 



public class Company : ConfigurationElement
    {
        [ConfigurationProperty("name", IsRequired = true)]   
        public string Name { get { return this["name"] as string; } }

        [ConfigurationProperty("code", IsRequired = true)]        
        public string Code { get { return this["code"] as string; } }
    } 

Ответы [ 3 ]

3 голосов
/ 20 сентября 2011

Вы должны проверить серию из трех частей Джона Риста о конфигурации .NET 2.0 в CodeProject.

Настоятельно рекомендуется, хорошо написано иочень полезно!Из этих прекрасных статей я узнал, как работать с пользовательскими разделами конфигурации.

0 голосов
/ 20 сентября 2011

Я основываю весь свой код управления конфигурацией на собранных мной классах здесь .Это пример , а вот немного документации .Обратите внимание, что это код, который я лично реорганизовал из поста в блоге, который больше не доступен онлайн.

0 голосов
/ 20 сентября 2011
...