1

クラスAオブジェクトのリストを含むクラスAとクラスBがあります。

public class Item
{
    public string X{ get; set; }
    public string Y{ get; set; }
}
public class ItemCollection
{
    List<Item> items = new List<Item>();
    //Some methods
}

次の方法でシリアル化できます。

IsolatedStorageFileStream ifs = new IsolatedStorageFileStream("myxml.xml", FileMode.Create, isfile);
DataContractSerializer ser = new DataContractSerializer(itemlist.items.GetType());
XmlWriter writer = XmlWriter.Create(ifs);
ser.WriteObject(writer, itemlist.items);

しかし、逆シリアル化しているときに、「... ルート要素がありません」というメッセージが表示されます。エラー。

IsolatedStorageFileStream ifs = new IsolatedStorageFileStream("myxml.xml", FileMode.Open, isfile);
DataContractSerializer ser = new DataContractSerializer(itemlist.Items.GetType());
XmlReader reader=XmlReader.Create(ifs);
itemlist.items= (List<Item>)ser.ReadObject(reader);

別のクラスのリスト/コレクションを含むクラスをシリアル化/逆シリアル化する他の/より良い方法はありますか?

4

1 に答える 1