Nejčastěji odpovídající uživatel
Zápis do XML ze statické metody

Dotaz
-
Zdravím,
pokouším se o ukládání nastavení aplikace ve formě XML souboru tímto způsobem:
- Ve statickém konstruktoru třídy Settings inicializuji objekt typu NameValueCollection m_settings z existujícího XML
- Chci-li změnit nějakou hodnotu této kolekce například z formuláře nastavení, používám k tomu atributy (např. Version)
- V jejích setterech provádím nejprve nastavení příslušné hodnoty v kolekci a pak zavolám metodu Update třídy Settings, která vypadá zrhuba takto:
public static void Update() { XmlWriterSettings settings = new XmlWriterSettings(); settings.CloseOutput = true; XmlWriter tw = XmlWriter.Create(m_settingsPath); tw.WriteStartDocument(); tw.WriteStartElement("configuration"); tw.WriteStartElement("appSettings"); for (int i = 0; i < m_settings.Count; ++i) { tw.WriteStartElement("add"); tw.WriteAttributeString("key", m_settings.GetKey(i)); tw.WriteAttributeString("value", m_settings.Get(i)); tw.WriteEndElement(); } tw.WriteEndElement(); tw.WriteEndElement(); tw.Flush(); tw.Close(); }
Problém spočívá v tom, že soubor se přepíše pouze při prvním volání této metody. Při dalších pokusech to vypadá, že ani volání Close() nezpůsobí fyzický zápis do souboru. Je to nějaká vlastnost statických metod, o které nevím?
Děkuji za případnou radu.
Tomáš
Odpovědi
-
Dobrý den,
omlouvám se za opožděnou reakci.
Osobně bych Vám pro tento účel doporučil použítConfigurationManager
.AppSettings[<key>]
http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx
pokud chcete pomoci analyzovat Váš kód, tak jej se prosím vložte v ucelené podobě. Včetně toho co vkládáte do m_settingsPath a m_settings.- Označen jako odpověď Robert HakenMVP, Moderator středa 17. února 2010 21:54
Všechny reakce
-
-
Dobrý den,
ano jde mi o to uložit některá nastavení aplikace pro aktuální seanci i pro další spouštění.
Jde o windows forms aplikaci. A nejde mi ani tak o alternativní řešení, jako spíše o zjištění důvodu, proč se při opakovaném volání metody Update neaktualizuje XML soubor.
-
Dobrý den,
omlouvám se za opožděnou reakci.
Osobně bych Vám pro tento účel doporučil použítConfigurationManager
.AppSettings[<key>]
http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx
pokud chcete pomoci analyzovat Váš kód, tak jej se prosím vložte v ucelené podobě. Včetně toho co vkládáte do m_settingsPath a m_settings.- Označen jako odpověď Robert HakenMVP, Moderator středa 17. února 2010 21:54