Witam, mam problem z deserializacją obiektów. Samą serializację mam, polega ona na tym że zapisuje w formacie XML wszystkie obiekty klasy Zadanie pobierane ze statycznej listy "zadania". Plik xml ładnie się generuje, tylko nie mam pojęcia jak mam dane z pliku XMLowego zamienić ponownie na obiekty i wpisać je z powrotem do Listy? Podsyłam kodzik :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Xml.Serialization;
namespace MP1
{
[Serializable]
public class Zadanie
{
public String opis;
public int czas;
public static Boolean wymagasprawdzenia = true;
public static List <Zadanie> zadania = new List<Zadanie>();
public Zadanie(String opis, int czas)
{
this.opis = opis;
if (wymagasprawdzenia == true)
{
this.czas = czas*2;
}
else
{
this.czas = czas;
}
addZadanie(this);
}
public Zadanie()
{
}
public String toString()
{
return "Opis: " + this.opis + " Czas wykonania w min: " + this.czas;
}
private static void addZadanie(Zadanie zad)
{
zadania.Add(zad);
}
private static void removeZadanie(Zadanie zad)
{
zadania.Remove(zad);
}
//METODA KLASOWA
public static void showAll()
{
Console.WriteLine("Ekstensja klasy Zadanie: ");
foreach (Zadanie zad in zadania)
{
Console.WriteLine(zad.toString());
}
}
public static void SerializeToXml()
{
StreamWriter writer = new StreamWriter("c:\\test.xml");
XmlSerializer serializer = new XmlSerializer(typeof(List<Zadanie>));
serializer.Serialize(writer, zadania);
writer.Flush();
writer.Close();
}
public static void DeserializeFromXml()
{
StringReader reader = new StringReader(@"C:\Xml.xml");
XmlSerializer deserializer = new XmlSerializer(typeof(List<Zadanie>));
object obj = deserializer.Deserialize(reader);
List<Zadanie> xmldata = (List<Zadanie>)obj;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MP1
{
class Glowna
{
static void Main(string[] args)
{
AirCraft ac = new AirCraft("Boeing", "WWE2222");
ac.wyswietlinfo();
Adres ad = new Adres("Łochów", "Jasiorówka", "07-130", 81);
Adres ad1 = new Adres("Warszawa", "Sielecka", "02-111", 55, 51);
Mechanik mech = new Mechanik("Hubert","Grotkowski","1994/09/21");
mech.setAdres(ad);
mech.Wyswietlinfo();
Console.ReadKey();
ac.addZadanie(new Zadanie("Wymiana kół", 90));
ac.addZadanie(new Zadanie("Wymiana szyb", 90));
ac.addZadanie(new Zadanie("Wymiana oleju", 90));
Zadanie zad = new Zadanie("Wstawienie szyb", 120);
ac.wyswietlinfo();
Console.ReadKey();
Zadanie.showAll();
Console.ReadKey();
Zadanie.SerializeToXml();
/*Zadanie.showAll();
Console.ReadKey();
Zadanie.DeserializeFromXml();
Zadanie.showAll();
Console.ReadKey(); */
}
}
}