Je suis en train d'écrire un service Windows qui a besoin d'informations à partir de app.config - je sais que je pourrais utiliser AppSettings
, mais j'essaie de comprendre un peu mieux les sections de configuration.Lire une ConfigurationSection
J'ai modifié mon 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>
et créé la classe suivante:
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; }
}
}
et je suis en train d'y accéder comme ceci:
public MyConfigurationSection ConfigSection
{
get
{
var configurationSection = Configuration.GetSection("config");
return (MyConfigurationSection) configurationSection;
}
}
private static Configuration Configuration
{
get { return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); }
}
Tout fonctionne bien jusqu'à ce que j'arrive à la distribution . Je reçois un DefaultSection
de mon appel à GetSection()
et la distribution échoue.
Où est-ce que je me suis égaré?
ne pouvait pas vous imaginer un meilleur nom pour le configsection que « config » – Daniel
Ceci est une maquette. Je n'utilise pas vraiment "aBoolean" et "aNumber", non plus. –