XML序列化反序列化 我在wince下绘图,之后序列化为xml文件,以便以后修改。序列化的类定义一个数组,存放的是各种图形。怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用XML对Shapes类序列化,其中定了一个数组,放的是图形,最后的xml保存成功,可是反序列化有异常说xml文档中没有根元素,不知道是不是XML不能对数组反序列化 检查:1. xml文件是否没有根元素。2. 读取和使用xml文件的方法是否正确. 序列化(s = new Shapes)序列化的类是ShapesFileStream fs = new FileStream("aa.xml",FileMode.Create); XmlSerializer xs = new XmlSerializer(s.GetType()); xs.Serialize(xs, this.s); fs.Close();这是反序列化: FileStream fs = new FileStream("123.xml",FileMode.Open); XmlSerializer xs = new XmlSerializer(this.s.GetType()); s = (Shapes) xs.Deserialize(fs); fs.Close(); this.redraw(true);//重绘不知道哪里出问题了 <?xml version="1.0"?><Shapes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <minDim>10</minDim> <List> <anyType xsi:type="Linea"> <penWidth>1</penWidth> <showBorder>true</showBorder> <penColor /> <X1>149</X1> <Y>52</Y> <X>62</X> <Y1>103</Y1> <Deleted>false</Deleted> <IsCurve>false</IsCurve> <IsTri>false</IsTri> </anyType> <anyType xsi:type="Rect"> <penWidth>1</penWidth> <showBorder>true</showBorder> <penColor /> <X1>184</X1> <Y>141</Y> <X>119</X> <Y1>165</Y1> <Deleted>false</Deleted> <IsCurve>false</IsCurve> <IsTri>false</IsTri> </anyType> </List></Shapes>这是序列化后的文件,存了一条直线和一个矩形 XmlReader xmlReader = XmlReader.Create("123.xml");XmlSerializer xs = new XmlSerializer(this.s.GetType()); s = (Shapes) xs.Deserialize(xmlReader); xmlReader.Close(); 这是反序列化: FileStream fs = new FileStream("123.xml",FileMode.Open); XmlSerializer xs = new XmlSerializer(this.s.GetType()); s = (Shapes) xs.Deserialize(fs); fs.Close(); this.redraw(true);//重绘 把 this.s.GetType() 改为 typeof(Shapes) 试试看 我博客里有篇文章写了 xml序列化的框架,你看看,这样用起来很方便。 序列化(s = new Shapes)序列化的类是Shapes FileStream fs = new FileStream("aa.xml",FileMode.Create); XmlSerializer xs = new XmlSerializer(s.GetType()); xs.Serialize(xs, this.s); fs.Close(); 这是反序列化: FileStream fs = new FileStream("123.xml",FileMode.Open); XmlSerializer xs = new XmlSerializer(this.s.GetType()); s = (Shapes) xs.Deserialize(fs); fs.Close(); this.redraw(true);//重绘 不知道哪里出问题了 急求帮助,明天考试要用。 c# 如何编写平方与开平方(help) cookies或者IP地址的广告客户跟踪技术 哪位给介绍几本介绍IDE开发环境的书本 vs2005 ,全程建模???? blog 中 Calendar控件问题 数据库里面明明是"2005-10-12",怎么C#读出来加上个时间的尾巴? ?---哈希表的东东....散分了. 简单问题,紧急~~~~~~~在线等!!! 象csdn这样论坛关于回复内容的存取,和原样显示的问题!!!! 怎样通过反射来获取一个STRUCT中的所有PUBLIC对象呢?急用..... MSMQ消息队列读消息问题
1. xml文件是否没有根元素。
2. 读取和使用xml文件的方法是否正确.
FileStream fs = new FileStream("aa.xml",FileMode.Create);
XmlSerializer xs = new XmlSerializer(s.GetType());
xs.Serialize(xs, this.s);
fs.Close();
这是反序列化:
FileStream fs = new FileStream("123.xml",FileMode.Open);
XmlSerializer xs = new XmlSerializer(this.s.GetType());
s = (Shapes) xs.Deserialize(fs);
fs.Close();
this.redraw(true);//重绘
不知道哪里出问题了
<Shapes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<minDim>10</minDim>
<List>
<anyType xsi:type="Linea">
<penWidth>1</penWidth>
<showBorder>true</showBorder>
<penColor />
<X1>149</X1>
<Y>52</Y>
<X>62</X>
<Y1>103</Y1>
<Deleted>false</Deleted>
<IsCurve>false</IsCurve>
<IsTri>false</IsTri>
</anyType>
<anyType xsi:type="Rect">
<penWidth>1</penWidth>
<showBorder>true</showBorder>
<penColor />
<X1>184</X1>
<Y>141</Y>
<X>119</X>
<Y1>165</Y1>
<Deleted>false</Deleted>
<IsCurve>false</IsCurve>
<IsTri>false</IsTri>
</anyType>
</List>
</Shapes>
这是序列化后的文件,存了一条直线和一个矩形
XmlSerializer xs = new XmlSerializer(this.s.GetType());
s = (Shapes) xs.Deserialize(xmlReader);
xmlReader.Close();
FileStream fs = new FileStream("123.xml",FileMode.Open);
XmlSerializer xs = new XmlSerializer(this.s.GetType());
s = (Shapes) xs.Deserialize(fs);
fs.Close();
this.redraw(true);//重绘 把 this.s.GetType() 改为 typeof(Shapes) 试试看
FileStream fs = new FileStream("aa.xml",FileMode.Create);
XmlSerializer xs = new XmlSerializer(s.GetType());
xs.Serialize(xs, this.s);
fs.Close();
这是反序列化:
FileStream fs = new FileStream("123.xml",FileMode.Open);
XmlSerializer xs = new XmlSerializer(this.s.GetType());
s = (Shapes) xs.Deserialize(fs);
fs.Close();
this.redraw(true);//重绘
不知道哪里出问题了