Witam wszystkich! Mam problem, a mianowicie nie chce mi poprawnie serializować i deserializować pliku XML. Udało mi się doprowadzić do tego, że program się uruchamia (!), ale podczas serializacji w nowo powstałym pliku XML wartości zmiennych są wyzerowane :/ Może ktoś z Was szybko wyłapie gdzie robię błąd? Poniżej kod:
[XmlRoot("pomiar")]
public class Moja_klasa
{
[XmlElement("data")]
public DateTime data { get; set; }
[XmlElement("temperatura")]
public double temperatura { get; set; }
[XmlElement("cisnienie")]
public double cisnienie { get; set; }
public Moja_klasa()
{
}
public Moja_klasa(DateTime sdata, double ftemperatura, double fcisnienie)
{
data = sdata;
temperatura = ftemperatura;
cisnienie = fcisnienie;
}
public void DeserializeObject(string filename)
{
// Create an instance of the XmlSerializer specifying type and namespace.
XmlSerializer serializer = new XmlSerializer(typeof(Moja_klasa));
// A FileStream is needed to read the XML document.
FileStream fs = new FileStream(filename, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
// Use the Deserialize method to restore the object's state.
List<Moja_klasa> lista = new List<Moja_klasa>
{ };
Moja_klasa i = (Moja_klasa)serializer.Deserialize(reader);
fs.Close();
// Write out the properties of the object.
}
public void SerializeObject(Moja_klasa o,StreamWriter wr)
{
XmlSerializer serializer = new XmlSerializer(typeof(Moja_klasa));
serializer.Serialize(wr, o);
wr.Flush();
wr.Close();
}
A tak jest to wywolywane w main:
try
{
Moja_klasa t = new Moja_klasa();
t.DeserializeObject("C:\\Users\\Marcin\\Desktop\\obiekt\\iks.xml");
listBox1.Items.Add("data: "+t.data);
StreamWriter wr = new StreamWriter("C:\\Users\\Marcin\\Desktop\\obiekt\\apa.xml");
t.SerializeObject(t, wr);
}
Tutaj zawartość prostego XML, którego chcę zDEserializować i poźniej na podstawie otrzymanego obiektu utworzyć nowy XML (zserializować).
<?xml version="1.0" encoding="ISO-8859-2" standalone="no"?>
<pomiar>
<data>2015-12-12T14:12:11</data>
<temperatura>20.00</temperatura>
<cisnienie>15.00</cisnienie>
</pomiar>