【发布时间】:2016-06-03 05:34:46
【问题描述】:
XML文件如下
<?xml version="1.0" encoding="utf-8" ?>
<Polygons>
<Polygon>
<Points>
<Point2D X="0" Y="0" />
<Point2D X="100" Y="0" />
<Point2D X="100" Y="200" />
<Point2D X="0" Y="200" />
</Points>
</Polygon>
<Polygon>
<Points>
<Point2D X="0" Y="0" />
<Point2D X="100" Y="0" />
<Point2D X="100" Y="200" />
<Point2D X="0" Y="200" />
</Points>
</Polygon>
</Polygons>
我想将此 XML 反序列化回 Polygon 对象。我的多边形类如下
[XmlType("Polygon")]
public class Polygon
{
[XmlElement("Points")]
public Point[] points { get; set; }
}
我的反序列化代码是
XmlSerializer serializer = new XmlSerializer(typeof(Polygon[]),new XmlRootAttribute("Polygons"));
FileStream fs = new FileStream(filename, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
Polygon[] p;
p = (Polygon[])serializer.Deserialize(reader);
fs.Close();
到目前为止,我已经通过创建具有 X 和 Y 属性的 Point2D 类,然后使用它们创建 Point 对象来管理解决方法。有没有办法直接将 Point2D 下列出的属性分配给 Point 对象,如 pointObject.X 和 pointObject.Y?
【问题讨论】:
-
你的 Point 类是什么样子的?
-
它在 System.Drawing 中预定义