Les Snippets

Connexion

Serialisation et deserialisation d'un objet vers du xml

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 17/03/2006 19:51:25 et initié par jesusonline [Liste]
Date de mise à jour : 08/04/2006 14:06:45
Vue : 22249
Catégorie(s) : Trucs & Astuces, XML
Langages dispo pour ce code :
- VB 2005, VB.NET 1.x
- C# 1.x, C# 2.x
- Java
- PHP 5
- C# 2.x
- Voir tous les langages pour ce code snippet



Langage : C# 2.x
Date ajout : 24/03/2006
Posté par iso8859 [Liste]

using System;

using System.Xml.Serialization;

using System.IO;
namespace Utilities 
{
  /// <summary>

  /// Serialisation / Deserialisation avec les generics .NET 2.0

  /// Sauvegare / chargement vers fichier, string ou stream

  /// </summary>
    public class XMLSerialize<T> : MarshalByRefObject where T : new() 
    {
      // Le serialiser est statique ainsi il n'est construit qu'une fois par le CLR

      // gain de temps enorme qui evite de faire une reflection à chaque utilisation
      static XmlSerializer m_serializer = new XmlSerializer(typeof(T));
      static public T LoadFromFile(string fileName) 
      {
        T result;
        try

        {
          using (FileStream input = new FileStream(fileName, FileMode.Open)) 
          {
            result = (T)m_serializer.Deserialize(input);
          }
        }
        catch

        {
          result = new T(); 
        }
        return result; 
      }
      static public T LoadFromString(string data) 
      {
        T result;

        try

        {
          using (StringReader sr = new StringReader(data)) 
          {
            result = (T)m_serializer.Deserialize(sr);
          }
        }
        catch

        {
          result = new T(); 
        }
        return result; 
      }
      static public T LoadFromStream(Stream stream) 
      {
        T result;

        try

        {
          XmlSerializer read = new XmlSerializer(typeof(T)); 
          result = (T)m_serializer.Deserialize(stream);
        }
        catch

        {
          result = new T(); 
        }
        return result; 
      }
      public void SaveToStream(Stream stream) 
      {
        m_serializer.Serialize(stream, this); 
      }
      public string SaveToString() 
      {
        StringWriter sw = new StringWriter(); 
        m_serializer.Serialize(sw, this);
        return sw.ToString(); 
      }
      public void SaveToFile(string fileName) 
      {
        using (StreamWriter sm = new StreamWriter(fileName)) 
        {
          m_serializer.Serialize(sm, this); 
        }
      }
    }

    // Exemple d'utilisation
    public class Exemple : XMLSerialize<Exemple> 
    {
      public string m_nom; public int m_age; 
    }

    public class M

    {
      public static void Main() 
      {
        Exemple e = new Exemple(); e.m_nom = "Newton"; 
        e.m_age = 45;

        string sauve = e.SaveToString(); // Sauver vers une chaîne

        Exemple e2 = Exemple.LoadFromString(sauve); // Création d'une nouvelle instance

      }
    }
  }


Snippets en rapport avec : Serialisation, Deserialisation, Xml, Serialize, Deserialize



Codes sources en rapport avec : Serialisation, Deserialisation, Xml, Serialize, Deserialize

{PDA / PocketPC} POCKETAPPCONFIG : CONSERVER SES PRÉFÉRENCES
Dans de nombreux cas il est inutile d'utiliser une base de donnée pour sauvegarder quelques préféren...

{C# / C#.NET} DESSINER EN XML
C'est le prolongement d'un test d'embauche : On m'a demandé de faire un composant (dll) qui serait c...

{JAVA / J2EE} MANIPULATION DE FICHIER XML
le code creé un fichier XML depuis une base de données Mysql ensuite il auras l'affichage du conten...

{PHP} [PHP5] XML OBJECT SERIALIZER/UNSERIALIZER
Bon...je vais tenter d'expliquer le concept ;-) Les adeptes de la POO PHP connaisse les fonctions s...

{C# / C#.NET} [C#] [XML] SERIALIZATION STRING, COLOR, ARRAYLIST, HASHTABLE, DATETIME
Voici un ensemble de classes qui vont permettre en englobant des classes de bases de C# de faire de ...

{JAVA / J2EE} SÉRIALISATION
c un petit programme qui vous presente d'une maniere tres simple la facon d'utiliser une des methode...

{Flash} XMLIZER : OBJET FONCTIONNANT SUR LE PRINCIPE DE "SERIALIZE()" ET "UNSERIALIZE()" DE PHP.
Après mettre pencher sur le "serialize()" et "unserialize()" de PHP grace a Skreo, je me suis vite r...

{Flash} CLASSE SERIALIZER : SERIALIZE() ET UNSERIALIZE() IDENTIQUES À PHP
La classe Serializer contient 2 fonction publiques : serialize() et unserialize() identiques à php ...

{C# / C#.NET} SÉRIALISEZ VOS FICHIERS DE CONFIGURATION !!!
Combien de fois avez-vous réécris vos méthodes permettant de gérer vos fichiers de configurations ??...

{Python} RÉCUPÉRER LES PHOTOS D'UN ALBUM SUR ZOOOMR
Ce petit script permet de récupérer simplement toutes les photos d'un album sur le site Zooomr. Il u...