Hm. Interessant. C# (of in

Hm. Interessant. C# (of in ‘t algemeen, .NET), maakt voor configuratie blijkbaar niet echt meer gebruik van de registry. Niet dat het niet zou kunnen, maar er is een speciaal ding voor voorzien, ConfigurationSettings.

In die ConfigurationSettings zit na het opstarten van de applicatie de inhoud van een XML-file, applicatienaam.config. Dat beestje ziet er zo uit:

<configuration>
   <appSettings>
      <add key=”naam” value=”waarde” />
   </appSettings>
</
configuration>

…en het kan simpelweg uitgelezen worden in C# met iets als

string waarde=ConfigurationSettings.AppSettings[“naam”];

Probleem is dat dit niet mogelijk is:

if (waarde==null)
{
  waarde=”iets anders”;
  ConfigurationSettings.AppSettings.Set(“naam”,waarde);
}

want die dingen zijn read-only. Ja, er zit wel een Set-methode in, maar neen, het ding is niet bruikbaar. Aaargh!

Ik zie de logica er wel van in: .config zou enkel moeten gebruikt worden om de applicatie te bootstrappen, en dan eenmalig verwijzen naar een database of zo, die dan de echte configuratiegegevens bevat.

Akkoord, maar ik wil in die .config alleen de naam van de database houden die de applicatie gebruikt, en die in de connectionstring smurfen. Oh well, ik zal dat bestand dan maar inladen als XML en rechtstreeks in gaan zitten wijzigen zeker?