Я пишу службу Windows, которая нуждается в некоторой информации из app.config. Я знаю, что могу использовать AppSettings
, но я пытаюсь понять разделы конфигурации немного лучше.Чтение конфигурацииSection
Я изменил мой App.config:
<configuration>
<startup>
<supportedRuntime sku=".NETFramework,Version=v4.0"
version="v4.0"/>
</startup>
<configSections>
<section name="config"
type="MyNamespace.MyConfigurationSection"/>
</configSections>
<config aNumber="1"
aBoolean="false"/>
</configuration>
и создал следующий класс:
public sealed class MyConfigurationSection : ConfigurationSection
{
[ConfigurationProperty("aNumber", DefaultValue = 1, IsRequired = false)]
public int Number
{
get { return (int) this["aNumber"]; }
set { this["aNumber"] = value; }
}
[ConfigurationProperty("aBoolean", DefaultValue = false, IsRequired = false)]
public bool Boolean
{
get { return (bool) this["aBoolean"]; }
set { this["aBoolean"] = value; }
}
}
, и я пытаюсь получить доступ к нему, как это:
public MyConfigurationSection ConfigSection
{
get
{
var configurationSection = Configuration.GetSection("config");
return (MyConfigurationSection) configurationSection;
}
}
private static Configuration Configuration
{
get { return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); }
}
Все работает нормально, пока не доберусь до . Я возвращаю DefaultSection
от моего звонка до GetSection()
, и листинг терпит неудачу.
Где я сбился с пути?
не мог бы вы придумать лучшее название для configsection, чем «конфигурация» – Daniel
Это макет. Я тоже не использую «aBoolean» и «aNumber». –