我tryind反序列化XML文件转换成对象[] - 对象是具有以下字段如何将xml反序列化为对象数组?
矩形public class Rectangle : IXmlSerializable
{
public string Id { get; set; }
public Point TopLeft { get; set; }
public Point BottomRight { get; set; }
public RgbColor Color { get; set; }
}
我创建几个矩形,它们保存到一个数组并设法它们序列化到的XML我得到的语法如下:
<?xml version="1.0" encoding="utf-8" ?>
- <Rectangles>
- <Rectangle>
<ID>First one</ID>
- <TopLeft>
<X>0.06</X>
<Y>0.4</Y>
</TopLeft>
- <BottomRight>
<X>0.12</X>
<Y>0.13</Y>
</BottomRight>
- <RGB_Color>
<Blue>5</Blue>
<Red>205</Red>
<Green>60</Green>
</RGB_Color>
</Rectangle>
-
现在我想反序列化对象的矩形返回到一个新的矩形[] 我应该怎么办呢?
XmlSerializer mySerializer = new XmlSerializer(typeof(Rectangle));
FileStream myFileStream = new FileStream("rectangle.xml", FileMode.Open);
Rectangle[] r = new Rectangle[] {};
Rectangle rec;
for (int i = 0; i < 3; i++)
{
r[i] = (Rectangle) mySerializer.Deserialize(myFileStream);
}
我得到一个InvalidOperationException异常 - {“有是XML文档(1,40)中的错误。”} 我到底做错了什么?
谢谢
你的方形XML标签没有结束。这是一个错字吗? –