Serializzare una classe con LINQ



Supponiamo di avere una classe C# e di voler ottenere il codice xml che rappresenta una sua istanza.

E’ possibile sfruttare la potenza e la semplicità del linguaggio LINQ per raggiungere il nostro scopo.

Vediamo un facile esempio:

Supponiamo di avere la classe Libro cosi definita:

public class Libro
{
public String titolo { get; set; }
public String autore { get; set; }
public String editore { get; set; }
}

Immaginiamo ora di avere una lista di libri cosi definita

List<libro> lstLibri = new List<libro>();

e successivamente popolata con alcuni libri.


Il seguente codice LINQ trasforma la nostra lista di libri nel codice xml che la rappresenta:


var listaXML = new XDocument(
new XElement("Libri",
from p in lstLibri
select new XElement("Libro",
new XElement("titolo", p.titolo),
new XElement("autore", p.autore),
new XElement("editore", p.editore),
)
)
);

A questo punto listaXML conterrà qualcosa di questo tipo:

<libri>
<libro>
<titolo>I Promessi Sposi</titolo>
<autore>Alessandro Manzoni</autore>
<editore>Mondadori</editore>
</libro>
<libro>
<titolo>La Divina Commedia</titolo>
<autore>Dante Alighieri</autore>
<editore>ERGA Edizioni</editore>
</libro>
</libri>

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest