XmlSerializer perché no?

Oggi mi è capitata una cosa curiosa. Stavo lavorando sul mio “solito” database xml nativo ( ormai sono quasi 7 anni che ci “combatto”) e un mio collaboratore mi mostra un pezzo di codice che salva la entity Customer creandola con XmlDocument. Chiunque abbia messo mani sul formato xml ha dovuto fare i conti con questa classe. Mi spiego meglio, salvare la classe creando “a mano“ tutte le proprietà (document.CreateElement, document.CreateAttribute ecc) per poi fare il contrario recuperandola. Mi sa tanto di serializzazione dico io. Così ho scritto una classe di serializzazione e deserializzazione che fa lo stesso lavoro ma per qualsiasi entità.

   1: public static class StoringState<T>
   2:     {
   3:         public static string SerializeObject(object pObject)
   4:         {
   5:             
   6:                 var xmlSerializer = new XmlSerializer(typeof(T));
   7:  
   8:                 using (var stringWriter = new StringWriter())
   9:                 {
  10:                     xmlSerializer.Serialize(stringWriter, pObject);
  11:                     return stringWriter.ToString();
  12:                 }
  13:             
  14:         }
  15:  
  16:         public static object DeserializeObject(string pXmlizedString)
  17:         {
  18:             
  19:                 var xmlSerializer = new XmlSerializer(typeof(T));
  20:  
  21:                 using (var stringReader = new StringReader(pXmlizedString))
  22:                     return (T)xmlSerializer.Deserialize(stringReader);
  23:             
  24:         }
  25:     }

Spesso i tempi stretti e la pigrizia ci impediscono di studiare meglio il nostro amato Framework e che dire XmlSerializer c’è dalla versione 2.0.

S.

posted @ martedì 30 marzo 2010 02:58

Print
Comments have been closed on this topic.