webForumDet fria alternativet

app.config kan inte ändra

.NET

3 svar · 222 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

Hej, har lagt lite information i min app.config fil för att spara användardata. Jag har inga problem med att ta ut informationen men jag kan inte ändra informationen. Jag får:

ConfigurationSettings System.NotSupportedException: Collection is read-only

När jag använder funktioner som jag antar jag inte kan använda:

ConfigurationSettings.AppSettings[1] = "test";

Har även provat ett par andra sätt men samma resultat. Är det meningen att man inte ska kunna skriva till den här filen? Isf är det kanske en lösning att skapa en XmlWriter som modifierar filen?

Medlem sedan maj 20021 466 inlägg
#2

Den filen ligger i programmappen och filer i programmappen får inte ändras. Du måste spara dina inställningar i registret eller i Documents & Settings istället.

Medlem sedan nov. 20022 355 inlägg
#3

Efter en del sökandes så förstår jag det som att man inte ska kunna ändra denna fil. Så jag löste det genom att skapa en annan config-fil. Med hjälp av XML, skickar med classen jag skapade (utav lite olika tutorials och lite egna ideer).
För att använda den måste man definiera rootelement i config och vad filen heter:

config = new Configurationfile.AnyConfig();
config.configFile = "reminder.config";
config.keyRoot = "reminderSettings";

Där min configfil ser ut:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <reminderSettings>
    <add key="Encoding" value="true" />
    <add key="Minimized" value="false" />
    <add key="Sound" value="false" />
    <add key="Popup" value="true" />
  </reminderSettings>
</configuration>

Sen kan man använda sig av GetValue och SetValue. Dessa är även overridden för att kunna ta emot och skicka tillbaka int, bool, double och string.
Klassen som används skickas med.

Om det är någon som provar den eller ser något felaktikt hoja till för den är säkerligen inte optimal.

Medlem sedan nov. 20022 355 inlägg
#4

Marcus E skrev:

Den filen ligger i programmappen och filer i programmappen får inte ändras. Du måste spara dina inställningar i registret eller i Documents & Settings istället.

Ok, får ta en titt på det med :)

Skickar även med klassen jag använt

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)