Tengo dos clases de la siguiente manera:serialización XML de una colección en C#
public class Info
{
[XmlAttribute] public string language;
public int version;
public Book book;
public Info() { }
public Info(string l, int v, string author, int quantity, int price)
{
this.language = l;
this.version = v;
book = new Book(author, quantity, price);
}
}
public class Book
{
[XmlAttribute] public string author;
public int quantity;
public int price;
[XmlIgnore]public int total;
public NameValueCollection nvcollection = new NameValueCollection();
public Book() { }
public Book(string author, int quantity, int price)
{
this.author = author;
this.quantity = quantity;
this.price = price;
total = quantity * price;
nvcollection.Add(author, price.ToString());
}
}
He creado un ArrayList que suma las dos instancias de Información de clase de la siguiente manera:
FileStream fs = new FileStream("SerializedInfo.XML", FileMode.Create);
List<Info> arrList = new List<Info>();
XmlSerializer xs = new XmlSerializer(typeof(List<Info>));
Info pObj = new Info("ABC", 3, "DEF", 2, 6);
Info pObj1 = new Info("GHI", 4, "JKL", 2, 8);
arrList.Add(pObj);
arrList.Add(pObj1);
xs.Serialize(fs, arrList);
fs.Close();
Pero cuando intento serializar, obtengo una excepción como "Hubo un error que refleja el tipo 'System.Collections.Generic.List`1 [ConsoleApplicationSerialization.Info]'."
¿Alguien me puede ayudar con eso?
Además, en lugar de namevaluecollection, ¿qué tipo de estructura puedo usar?
bien, si yo quito el NameValueCollection de la clase libro entonces todo funciona bien. A diferencia de clases – Archie