ich zwei Klassen wie folgt:XML-Serialisierung von einer Sammlung in 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());
}
}
Ich habe eine Arraylist erstellt, die die beiden Instanzen von Info-Klasse fügt sich wie folgt:
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();
Aber als ich Versuchen Sie zu serialisieren, ich bekomme eine Ausnahme als "Es gab einen Fehler, der den Typ 'System.Collections.Generic.List`1 [ConsoleApplicationSerialization.Info]' widerspiegelt."
Kann mir jemand dabei helfen?
Auch, anstelle von Namevaluecollection, welche Art von Struktur kann ich verwenden?
gut, wenn ich nur die Namevaluecollection von Klasse Buch entfernen dann alles funktioniert. – Archie