Serializzazione XML [C#]

martedì 26 febbraio 2013 - 11.44
Tag Elenco Tags  C#

pleiadi666 Profilo | Newbie

Ho creato una struttura (Member) al cui interno ho una serie di campi (Nome, Cognome etc) di tipo string, creo una lista di Member in questo modo
List<Member> members;
che poi vorrei serializzare per ottenere una cosa del genere :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

E' possibile?

In seguito richiamando il metodo Deserialize(reader) della classe XmlSerializer, mi deve ritornare nuovamente la lista ovviamente eseguendo un cast.

Aiutatemi perchè è la prima volta, di solito uso BinaryFormatter ... grazie =)

AntCiar Profilo | Expert

ciao.

1 - se puoi tira fuori la lista in una classe serializzabile. Questo perchè se nella classe dove sta ora ci sono altre cose potresti avere problemi di serializzazione.Poi dentro ci metti i metodi per la serializzazione e la deserializzazione


esempio
[Serializzable] public class Membri { [XmlArray, XmlArrayItem(Type = typeof(Member))] List<Member> _members = new List<Member>(); public List<Member> Members { get {return members;} set {members = value;} } public void Serialize(string pathFileXML) { StreamWriter sr = new StreamWriter(pathFileXML, false, System.Text.Encoding.UTF8); XmlSerializer serializer = new XmlSerializer(typeof(Membri)); serializer.Serialize(sr, this); sr.Close(); } public static Membri deserialize(string pathFile) { try { Membri ret = new Membri (); if (!File.Exists(pathFile)) { ret.serialize(pathFile); } else { XmlSerializer serializer = new XmlSerializer(typeof(Membri)); StreamReader r = new StreamReader(pathFile); ret = (Membri)(serializer.Deserialize(r)); r.Close(); } return ret; } catch (Exception) { return null; } } }


ciao
Cristian Barca

pleiadi666 Profilo | Newbie

Grazie mille!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5