#870 - Serializzare un oggetto in formato XML

A volte può tornare utile serializzare un oggetto in XML. Ad esempio, si può inserire la stringa in un database SQL Server 2005 e sfruttare il data type XML per eseguire delle query XPath e trovare gli oggetti voluti.
Questo è utile soprattutto quando si ha a che fare con oggetti di diversi tipi.

Per serializzare un oggetto bisogna utilizzare la classe XmlSerializer contenuta nel namespace System.Xml.Serialization e più precisamente il metodo Serialize.

Questo metodo prende l'oggetto e lo riporta in uno stream che poi può essere letto per recuperare la stringa XML:

public static string SerializeObject(object objectToSerialize) {
  if (objectToSerialize == null)
    throw new ArgumentNullException("The serializable object cannot be null", "objectToSerialize");

  XmlSerializer serializer = new XmlSerializer(objectToSerialize.GetType());
  MemoryStream stream = new MemoryStream();
  serializer.Serialize(stream, objectToSerialize);
  stream.Position = 0;
  StreamReader sm = new StreamReader(stream);
  string result = sm.ReadToEnd();
  stream.Close();
  return result;
}

Se invece si desidera salvare l'oggetto su file system, si può utilizzare un'instaza di una classe di tipo FileStream invece che MemoryStream.


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC