XMLconfiguration

Je kunt je configuratie vrij gemakkelijk in een xml-file opslaan via XmlSerializer.
Deze functie zorgt ervoor dat een class met de waardes  van de properties weggeschreven wordt naar een xml file.

Twee statische functies in deze class met de XmlSerializer functie:

        public static void Serialize(string file, Config c)
        {
            System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(c.GetType());
            StreamWriter writer = File.CreateText(@"c:\mijndownload\config.xml"); //file);
            xs.Serialize(writer, c);
            writer.Flush();
            writer.Close();

        }

        public static Config Deserialize(string file)
        {
            System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer( typeof(Config ));
            StreamReader reader = File.OpenText(file);
            Config  c = (Config )xs.Deserialize(reader);
            reader.Close();
            return c;

        }

 

String file = de naam van het xml document waarin de config moet worden opgeslagen, bv config.xml
Config c = de configuratie class die in dit geval dus Config heet.
Let op dat de Class als volgt aangemaakt wordt ( voorkomt errors bij het deserializen van de xml file):

[



XmlRoot("Config")]
[Serializable]
public class Config

Om een instantie van de Config aan te maken kun je dus de deserialize functie gebruiken ( deze geeft een Config object terug gevuld met de opgeslagen waardes in de xml file. Voorbeeld:

Config

Bij het opslaan van de configuratie gebruik je dus de serialize functie waarbij als parameters de xml file en het Config instantie zelf meegeeft.

Config.Serialize ("config.xml", c );

De XML file moet identiek zijn aan de class die je gemaakt hebt voor het opslaan van de config waardes, voorbeeld XML file:

<Config>
  <DownloadLocatie></DownloadLocatie>
  <TDurl></TDurl>
  <IceCatURL></IceCatURL>
  <TDusername></TDusername>
  <IceCatusername></IceCatusername>
  <IceCatpassword></IceCatpassword>
  <TDpassword></TDpassword>
</Config>

c = Config.Deserialize("config.xml");

 

Voorbeeld generic serialize class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using System.Xml.Serialization;

namespace Serialize
{
///
/// Class which serialize an object to xml
///
  /// The object to serialize
public class Serialize
{
// privates
private XmlSerializer xs;
private TextWriter tw;
private TextReader tr;
      /// 
/// Serialize to xml function
///
/// Object type
/// Filename
public void SerializeObject(T t, string filename)
{
xs = new XmlSerializer(typeof(T));
using (tw = new StreamWriter (filename ) )
{
xs.Serialize(tw, t);
}
}

      ///
/// Deserialize xml to ojbect function
///
/// filename
/// The deserialized object
public T DeserializeObject(string filename)
{
xs = new XmlSerializer(typeof(T));
using (tr = new StreamReader (filename ))
{
return (T)xs.Deserialize(tr);
}
}
}
}

{{opmerking.Naam}}:

{{opmerking.OpmerkingText}}

            

Saving your comment....

Naam is verplicht!
Email is verplicht!
Opmerking is verplicht!