Что такое «Тип конфигурации»? - PullRequest
0 голосов
/ 21 сентября 2011

У меня нет большого опыта взаимодействия с файлами конфигурации, и я читал метод GetSection () в MSDN, который отмечает, что:

**Notes to Implementers**: 

    You must cast the return value to the expected configuration type. 
To avoid possible casting exceptions, you should use a conditional 
casting operation such as... 

Что означает "тип конфигурации" вэта заметка?Разве выбранные разделы не представляют узел xml всегда?

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Тип конфигурации - это просто тип пользовательского класса, который вы определяете для представления значений конфигурации, которые вы хотите сохранить в App.Config или Web.Config

Ваш пользовательский раздел конфигурации должен наследоваться от System.Configuration.ConfigurationSection и когда вы используете метод GetSection, вам нужно привести возвращаемое значение в качестве типа вашего пользовательского класса, который вы унаследовали от System.Configuration.ConfigurationSection

подробнее здесь

Примером может быть, если у меня есть специальный класс для представления свойства, которое я хотел бы сохранить в App.Config или Web.Config, например:

public class MyConfig : ConfigurationSection
{
    [ConfigurationProperty("myConfigProp", DefaultValue = "false", IsRequired = false)]
    public Boolean MyConfigProp
    {
        get
        { 
            return (Boolean)this["myConfigProp"]; 
        }
        set
        { 
            this["myConfigProp"] = value; 
        }
    }
}

В любое время, когда я захочуполучить доступ к этому свойству, я бы сделал следующее в моем коде:

//create a MyConfig object from the XML in my App.Config file
MyConfig config = (MyConfig)System.Configuration.ConfigurationManager.GetSection("myConfig");

//access the MyConfigProp property
bool test = config.MyConfigProp;
1 голос
/ 21 сентября 2011

Здесь есть несколько отличных примеров для MSDN: http://msdn.microsoft.com/en-us/library/2tw134k3.aspx

Здесь «тип конфигурации» - это пользовательский тип, созданный для расширения ConfigurationSection.Да, это реализовано как узел XML, но цель пространства имен System.Configuration состоит в том, чтобы абстрагироваться от этого.

...