sabato 4 ottobre 2025

C# trasformare una lista di classe in un file XML

Nel caso che abbiamo la necessità di trasformare una lista di oggetti, classi, in un file XML, tramite la tecnica della serializzazione possiamo trasformare la lista in un file XML.

Nel caso che abbiamo una lista di entità di Entity Framework e desideriamo trasformare il risultato di questa lista in un file XML, tramite la classe XmlSerialize possiamo ottenere tale risultato.

Di seguito un frammento di codice nel linguaggio di programmazione C#.

Aggiungiamo lo spazio dei nomi per la gestione dei file XML e della Serializzazione.
Di seguito tale dichiarazioni.


C#
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;



Supponiamo di avere la seguente classe, che sarà utilizzata come lista di oggetti e contenitore di dati

C#
public class Persona
{
    public int Id { get; set; }
    public string Nome { get; set; }
    public string Cognome { get; set; }
}



Di seguito l'esempio di codice per creare la lista di oggetti della classe dichiara nell'esempio precedente.

C#
        // Crea una lista di entità
        List<Persona> persone = new List<Persona>
        {
            new Persona { Id = 1, Nome = "Mario", Cognome = "Rossi" },
            new Persona { Id = 2, Nome = "Luigi", Cognome = "Verdi" },
            new Persona { Id = 3, Nome = "Giovanni", Cognome = "Bianchi" }
        };





Di seguito il frammento di codice per trasformare la lista con i dati in un file XML.

C#
// Crea un oggetto XmlSerializer
XmlSerializer serializer = new XmlSerializer(typeof(List<Persona>));

// Crea un file XML
 using (StreamWriter writer = new StreamWriter("persone.xml"))
{
   // Serializza la lista di entità nel file XML
   serializer.Serialize(writer, persone);
}




Il risultato sarà:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfPersona xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Persona>
    <Id>1</Id>
    <Nome>Mario</Nome>
    <Cognome>Rossi</Cognome>
  </Persona>
  <Persona>
    <Id>2</Id>
    <Nome)Luigi</Nome>
    <Cognome>Verdi</Cognome>
  </Persona>
  <Persona>
    <Id>3</Id>
    <Nome>Giovanni</Nome>
    <Cognome>Bianchi</Cognome>
  </Persona>
</ArrayOfPersona>

Nessun commento: