[C#] Fichier de configuration App.config et section perso. Comment faire?
Bonjour à tous,
Je voudrais aujourd'hui extraire pas mal de paramètres de mon application et les mettre dans un fichier de configuration.
Prenons un exemple
Mon application créée 3 répertoires. Imaginons que je veuille pouvoir changer les noms ou en rajouter. J'ai donc fait ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="create_dir" type="System.Configuration.NameValueSectionHandler" />
</configSections>
<create_dir>
<add key="dir1" value="Test" />
<add key="dir2" value="Test2" />
<add key="dir3" value="Test3" />
</create_dir>
</configuration> |
et je peux le récupérer comme ça:
Code:
1 2 3
| NameValueCollection ListDir = (NameValueCollection)ConfigurationManager.GetSection("create_dir");
foreach (string Key in ListDir)
Console.WriteLine(ListDir[Key]); |
Hors je n'ai pas besoin des clés sur le principe, n'y a t'il pas la possibilité de faire quelque chose comme:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="create_dir" type="?????????" />
</configSections>
<create_dir>
<dir value="Test" />
<dir value="Test2" />
<dir value="Test3" />
</create_dir>
</configuration> |
Quand pensez vous?
System.collections.specialized.Stringcollection
bonjour
tu es sur le point d'aboutir il suffit d'iterer sur chilnodes comme suit pour lire les valeurs(vb.net):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
For Each elem As XmlNode In ClientSettingsSection.Value.ValueXml.ChildNodes
Me.TextBox1.Text = Me.TextBox1.Text & elem.InnerText & vbCrLf
'pour les modifier affecte la valeur
elem.InnerText = "OumElBouaghi"
Next
//enregistre modifs (donner le filename en general: TonAppli.exe.config)
//Enregistre Modifs
applicationConfigSection.SectionInformation.ForceSave = True
//Sauvegarde Fichier
config.SaveAs(fileName)
//Refresh the section
ConfigurationManager.RefreshSection("appSettings")
config.Save() |
bon code...