• Viernes 1 de Noviembre de 2024, 11:33

Autor Tema:  Serialización XML de objetos C#  (Leído 2800 veces)

dani78

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Serialización XML de objetos C#
« en: Sábado 12 de Julio de 2008, 03:16 »
0
Hola a todos.

Estoy empezando a usar XML y tengo algunas dudas que no he conseguidor resolver mirando foros y ejemplos. La idea es serializar a XML el estado de un objeto dentro de una aplicación C#.

La clase en cuestión (Estancia) tiene atributos de otras clases del mismo proyecto, y es aquí donde tengo problemas. No sé qué etiquetas tengo que añadir para serializar una Estancia, o si debería añadirlas en las clases Extra y Regimen.

public class Estancia
{
  public int referencia;
  public DateTime fecha_ent;

  public ArrayList extras;           /* colección de Extra
  public Regimen regimen;        /* referencia a Regimen

  public Estancia() { }
  ...
}

Si alguien puede ayudarme, o necesita más información para hacerlo, estaría muy agradecido.

famsoft

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Serialización XML de objetos C#
« Respuesta #1 en: Miércoles 10 de Septiembre de 2008, 01:36 »
0
Hola saludos, verás para poder serializar tu clase debes primeramente especificar que son públicas, y la clase que vas serializar, poner el atributo [Serializable] así:

Código: Text
  1.  
  2. [Serializable]
  3.     public class Estancia
  4.     {
  5.         public int referencia;
  6.         public DateTime fecha_ent;
  7.         public ArrayList extras; /* colección de Extra */
  8.         public Regimen regimen; /* referencia a Regimen*/
  9.         public Estancia()
  10.         { }
  11.     }
  12.  
  13.  

para serializar tu clase puedes hacerlo de la siguiente manera:
Código: Text
  1.  
  2. Estancia estancia = new Estancia();
  3.             FileStream file = new FileStream(@"D:estancia.xml", FileMode.Create);
  4.             XmlSerializer formato = new XmlSerializer(typeof(Estancia));
  5.             formato.Serialize(file, estancia);
  6.             file.Close();
  7.  
  8.  

Los namespaces a utilizar son :
using System.IO;
using System.Xml.Serialization;

Saludos y espero te sirva

famsoft.com.mx
famsoft.biz